;ELC ;;; Compiled by wws@SCMS-WSTCLAIR on Tue Nov 01 17:37:08 2005 ;;; from file c:/wws/blogmax/blogmax.el ;;; in Emacs version 21.3.1 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`blogmax.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\306\307!\210\310\311!\210\312\313!\203\310\314!\210\202\310\315!\210\310\316!\210\317\320\321\"\210\301B\322\302B\323\302!\2044\324\303B\323\303!\204@\321\304B\323\304!\204L\321\305B\323\305!\204X\321\325B\323\325!\204e\321\326B\323\326!\204r\321\327B\323\327!\204\321\330B\323\330!\204\214\331\332B\323\332!\204\231\321\333B\334B\323\334!\204\252\335\336B\323\336!\204\267\321\337B\323\337!\204\304\321\340B\323\340!\204\321\321 \341B\323\341!\204\336\321!\342B\323\342!\204\353\343\"\344B\323\344!\204\370\321$\345B\323\345!\204\321%\346B\323\346!\204\321&\347B\350'\351B\352)\353B\354+\355B\356-\357B\360/\361B\362/!1\363B\362\364!3\365B\362\366!5\367B\362\370!7\371B\362\372!9\373B\362\335!;\374B\375<\321\207" [current-load-list *weblog-init-file* *weblog-directory* *weblog-site-name* *weblog-byline* *weblog-author* provide blogmax require cl featurep efs-autoloads efs ange-ftp calendar set-variable html-helper-build-new-buffer nil "weblog.ini" boundp t *weblog-email* *weblog-ftp-directory* *weblog-url* *weblog-index-days* 7 *weblog-shortcuts-file* *weblog-generate-month-index-p* *weblog-pl-macro-text* "#" *weblog-bugmenot-auto-list* *weblog-shortcuts* *weblog-index-files* *weblog-generating-rss* *weblog-story-content* "" *weblog-story-file* *weblog-story-modtime* *weblog-saving-story* *weblog-page-template-file* "page-template.tmpl" *weblog-content-template-file* "content-template.tmpl" *weblog-story-template-file* "story-template.tmpl" *weblog-day-template-file* "day-template.tmpl" *weblog-escape-string* "\\" *weblog-escape-char* string-to-char *weblog-equal-sign-char* "=" *weblog-at-sign-char* "@" *weblog-newline-char* "\n" *weblog-lt-char* "<" *weblog-sharp-sign-char* *weblog-char-map* (("\226" "--") ("\227" "--") ("\222" "'") ("\223" "\"") ("\224" "\"") ("\221" "'") ("\205" "...") ("\240" ""))] 3) (defalias 'weblog-file #[(file) " P\305\n!\203\n\2025 G\306Y\205 \307\306O\211\204\"\n\2024 \310 R\305\f!\2032\f\2023\n)))\207" [*weblog-directory* file res first-two other-res file-exists-p 2 0 "/"] 5]) #@62 Execute BODY with BUF-VAR bound to a buffer containing FILE. (defalias 'weblog-while-visiting-file '(macro . #[(buf-var file &rest body) "\304 \305\306\307 DD\n\310BD\311\312 B\313\314\nDEEE)D\207" [exists-var file buf-var body gensym save-excursion let* weblog-find-or-visit ((current-buffer)) unwind-protect progn unless kill-buffer] 9 (#$ . 2782)])) #@76 Execute BODY with BUF-VAR bound to a buffer containing (weblog-file FILE). (defalias 'weblog-while-visiting-weblog-file '(macro . #[(buf-var file &rest body) "\303\304 D\nBBB\207" [buf-var file body weblog-while-visiting-file weblog-file] 4 (#$ . 3144)])) #@448 A description for each parameter in the *weblog-init-file* Each entry is of the form (PARAM VAR COERCE PRED), where PARAM is the name of the parameter (before the equal sign), VAR is the name of the variable to set to the parameter's value, COERCE is a function of one argument to convert the value from a string to what it needs to be, and PRED is a predicate that is called on the coerced value. If the value is nil, then an error is signalled. (defconst *weblog-init-param-descs* '(("site-name" *weblog-site-name*) ("byline" *weblog-byline*) ("author" *weblog-author*) ("email" *weblog-email*) ("url" *weblog-url*) ("ftp-directory" *weblog-ftp-directory*) ("index-days" *weblog-index-days* (lambda (x) (car (read-from-string x))) integerp) ("shortcuts-file" *weblog-shortcuts-file*) ("month-index" *weblog-generate-month-index-p* (lambda (x) (equalp x "true"))) ("pl-macro-text" *weblog-pl-macro-text*) ("bugmenot-auto-list" *weblog-bugmenot-auto-list* weblog-parse-space-separated-string)) (#$ . 3408)) #@113 Execute BODY with the init param variables bound to values found in DIRECTORY or one of its parent directories. (defalias 'weblog-with-init-params '(macro . #[(file &rest body) "\302\303\304\305 BBDE\207" [file body weblog-funcall-with-init-params function lambda nil] 6 (#$ . 4422)])) #@118 Call THUNK with the init param variables bound to values found in FILE's directory or one of its parent directories. (defalias 'weblog-funcall-with-init-params #[(file thunk) "\306\307!!\211\204\310\311\n\307!#\210 \232\203\f \202= \312\211\211\211\211\211\211\211\f \313 \210\f . )\207" [file dir *weblog-init-file* *weblog-directory* thunk *weblog-shortcuts* weblog-seek-base-dir file-name-directory error "There is no %s in any directory leading to: %s" nil weblog-parse-parameter-file *weblog-bugmenot-auto-list* *weblog-pl-macro-text* *weblog-generate-month-index-p* *weblog-shortcuts-file* *weblog-index-days* *weblog-ftp-directory* *weblog-site-name*] 10 (#$ . 4716)]) #@120 Find the *weblog-init-file* in DIRECTORY or one of its parents. Return the name of that directory or nil if not found. (defalias 'weblog-seek-base-dir #[(directory) "\303 \"\211\205\f\304\n!)\207" [directory *weblog-init-file* file weblog-seek-file file-name-directory] 4 (#$ . 5422)]) #@94 Find FILE-NAME in DIRECTORY or one of its parents. Return the full path or nil if not found. (defalias 'weblog-seek-file #[(directory file-name) "\300\301\215\207" [--cl-block-nil-- (byte-code " P\304\n!\203\305\306\307\n!\"\210\310\311!!\211\232\203\"\305\306\312\"\210 *\202" [directory file-name file parent file-exists-p throw --cl-block-nil-- expand-file-name file-name-directory directory-file-name nil] 5)] 2 (#$ . 5717)]) (defalias 'weblog-file-in-base-dir #[(file-name) "\302!\303 \304 !\")\207" [file-name dir file-name-directory equalp weblog-seek-base-dir] 4]) #@251 Parse the *weblog-init-file* in directory DIR. Set the variables associated with the parameters. Return t if the file was found and all the parameters were OK. Return nil if the file was not found. Error if an unknown parameter is found in the file. (defalias 'weblog-parse-parameter-file #[(&optional dir) "\204 \nP\306 !\205\212\307 !p\310\216\311 ,)\207" [dir *weblog-directory* *weblog-init-file* file #1=#:G740526 buf file-exists-p weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1# buf kill-buffer] 2)) weblog-parse-init-file-buffer] 2 (#$ . 6310)]) #@247 Parse the init file in the current buffer. Set the variables associated with the parameters. Return t if the file was found and all the parameters were OK. Return nil if the file was not found. Error if an unknown parameter is found in the file. (defalias 'weblog-parse-init-file-buffer #[nil "eb\210\300\301\215\210\302 \210\303\207" [--cl-block-nil-- (byte-code "`\306 \206d\307f\247\203\307f\n\232\202\307f\n=\204\200\310\311 \312#\211\203 S{ {\313\f\227\"\211\204A\314\315\f\"\210A\211@A@\3168 \203d !\203w!\204w\314\317\f #\210L\210.) \247\203\213 d\232\202\216 d=\203\226\320\321\307\"\210 Tb\210*\202" [point line-end *weblog-sharp-sign-char* equal-pos param value line-end-position nil search-forward "=" t assoc error "Unknown init parameter: %s" 2 "Init parameter \"%s\" has illegal value: %s" throw --cl-block-nil-- *weblog-init-param-descs* desc #1=#:G740527 var coerce pred coerced-value] 5) weblog-get-shortcuts nil] 2 (#$ . 6898)]) (byte-code "\300\301!\204\n\301\302M\210\300\207" [fboundp line-end-position #[nil "`\301\210`b\210)\207" [point nil] 2]] 2) #@37 Map directories to shortcuts values (defvar *weblog-shortcuts-alist* nil (#$ . 8042)) #@128 Set *weblog-shortcuts* from either the *weblog-shortcuts-alist* or by loading *weblog-shortcuts=file* from *weblog-directory*. (defalias 'weblog-get-shortcuts #[nil "\304 \"\211\203\nA\211\202\305 )\207" [*weblog-directory* *weblog-shortcuts-alist* elt *weblog-shortcuts* assoc weblog-load-shortcuts] 4 (#$ . 8135)]) #@103 Load the *weblog-shortcuts* from file in *weblog-directory*. File defaults to *weblog-shortcuts-file* (defalias 'weblog-load-shortcuts #[nil "\306\307\310 !!\203 \212\311\310 !!p\312\216eb\210\313\314 P \",\315\316\"\317 \"\211\2038\f\241\210\202@ \fBB)\fG)\207" [s *weblog-shortcuts-file* #1=#:G740528 buf *weblog-shortcuts* *weblog-directory* nil file-exists-p weblog-file weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1# buf kill-buffer] 2)) weblog-safe-read "Error parsing " mapcar #[(x) "@\227AB\207" [x] 2] assoc *weblog-shortcuts-alist* elt] 4 (#$ . 8466)]) #@61 (read stream), but (error error-string) if an error happens (defalias 'weblog-safe-read #[(error-string &optional stream) "\300\301\302\217\207" [errvar (read stream) ((error (error error-string)))] 3 (#$ . 9075)]) #@57 Reload the shortcuts for the file of the current buffer (defalias 'weblog-reload-shortcuts #[nil "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\300 \207" [weblog-load-shortcuts] 1]] 3 (#$ . 9296) nil]) #@54 Expand the macros & shortcuts in the current buffer. (defalias 'weblog-expand-buffer #[(&optional leave-escapes file) "\301\206\302 \303\"\207" [file weblog-funcall-with-init-params buffer-file-name #[nil "\301\302\215\210\303 \210\304 \210?\205\305 \207" [leave-escapes --cl-block-nil-- (byte-code "\301 \211\302=\203\303\304\305\"\210)\202" [cnt weblog-expand-macros 0 throw --cl-block-nil-- nil] 4) weblog-insert-bugmenot-macros weblog-add-paragraphs weblog-remove-escapes] 2]] 3 (#$ . 9537) nil]) (defalias 'search-forward-non-escaped #[(string &optional limit) "\300\301\215\207" [--cl-block-nil-- (byte-code "\304 \305#\211\204\306\307\310\"\210\nGZ \nSf=\204!\306\307\n\"\210)\202" [string limit pos *weblog-escape-char* search-forward t throw --cl-block-nil-- nil] 5)] 2]) #@216 Find all one-line strings between START-DELIM and END-DELIM. Call F on each one. If F returns non-NIL, replace the string and the delimiters with the returned value. If KEEP-DELIMS is true, replace only the string. (defalias 'weblog-do-replacement #[(f start-delim end-delim &optional keep-delims) "eb\210\306 G \204\306\202 G\n\f\\\307\n\307 \310\311\215.\207" [cnt start-delim start-len end-delim end-len total-len 0 nil --cl-block-nil-- (byte-code "\306\307\"\211\204\310\311\n\"\210 \204`\202\306 \312 \"\f\203 \\\211\f{!\211\203\202;\204B\313\314\"\nT\315\f Z\\!\210;\204r\316\317\320!!\211\321!\210)rq\210\322 \323\307!\210*\203~ Qc\210*\202" [start-delim pos cnt end-delim end start-len search-forward-non-escaped nil throw --cl-block-nil-- line-end-position format "%s" backward-delete-char get-buffer-create generate-new-buffer-name " *string-output*" princ buffer-string kill-buffer s f new-s total-len standard-output keep-delims] 5) pos end] 2 (#$ . 10345)]) #@68 Convert shortcuts from double-quote delimited to {=....} delimited (defalias 'weblog-convert-shortcuts #[nil "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\204\301 \210\302\303\304\211#\207" [*weblog-shortcuts* weblog-load-shortcuts weblog-do-replacement (lambda (s) (if (weblog-lookup-shortcut s) (concat "{=" s "}"))) "\""] 4]] 3 (#$ . 11391) nil]) #@123 Like directory-files, but matches pattern, sorted descending if true, and includes a list of sub-directories in year-dirs (defalias 'weblog-directory-files #[(dir &optional full pattern descending year-dirs) "\206\306\307\n \310$ \203\311\202\312\313\313\211\203M@\307\n\314Q \310$\211\203C\f\244\310)A\211\204&* \203a\203a\315\f\316\317$\202f\320\f\",\207" [pattern pat dir full files descending ".*.txt" directory-files t weblog-string-greaterp string-lessp nil "/" sort* :key file-name-nondirectory sort pred need-key year-dirs yd #1=#:--dolist-temp--740531 yf] 6 (#$ . 11785)]) #@201 (funcall F) for every file name in DIR that satisifies PRED. Consider only files that match the regexp PATTERN, which defaults to all text files. Opens each file in a buffer before doing (funcall F). (defalias 'weblog-map-directory #[(dir f &optional pred pattern descending year-dirs) "\306\307 \n %\211\310\211\f\203D\f@ \203! !\203;\212\311 !p\312\216eb\210 \210q\210\313 \210,\fA\211\f\204+\310\207" [dir pattern descending year-dirs files file weblog-directory-files t nil weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1=#:G740533 buf kill-buffer] 2)) save-buffer #2=#:--dolist-temp--740532 pred #1# buf f] 7 (#$ . 12424)]) (defalias 'weblog-string-greaterp #[(s1 s2) " \231\207" [s2 s1] 2]) #@154 (funcall F file-name) for each file in DIR and its sub-directories that satisfies pred and matches the regexp PATTERN, which defaults to all text files. (defalias 'weblog-map-all-files #[(dir f &optional pred pattern) "\306\307 \206\310#\311\211\203( @\f\203\f\n!\203! \n!\210 A\211\204*\306\307\"\311\211\203b@\312\n!\203Y\313\n!\211\314\232\204X\315\232\204X\316\n \f $\210)A\211\2045*\311\207" [dir pattern file #1=#:--dolist-temp--740534 pred f directory-files t ".*.txt" nil file-directory-p file-name-nondirectory "." ".." weblog-map-all-files #2=#:--dolist-temp--740535 name] 6 (#$ . 13170)]) #@72 This is a one-timer to convert from the old to the new shortcut syntax (defalias 'dir-convert-shortcuts #[(dir) "\301\302\"\207" [dir weblog-map-directory weblog-convert-shortcuts] 3 (#$ . 13809)]) #@66 A one-timer to change {= to {@ in every text file in a directory (defalias 'dir-convert-macro-shortcuts #[(dir) "\301\302\"\207" [dir weblog-map-directory (lambda nil (replace-string "{=" "{@"))] 3 (#$ . 14014)]) #@66 Look up NAME in the *weblog-shortcuts*. Return its value or nil. (defalias 'weblog-lookup-shortcut #[(name) "\303\227 \"\211A@)\207" [name *weblog-shortcuts* x assoc] 4 (#$ . 14234)]) (defalias 'weblog-add-paragraphs #[nil "\300\301\302\303#\207" [weblog-do-replacement (lambda (s) "\n

\n") "\n\n" nil] 4]) (defalias 'weblog-expand-macros #[nil "\300\301\302\303#\207" [weblog-do-replacement (lambda (s) (ignore-errors (if (eq 0 (length s)) nil (cond ((eq *weblog-at-sign-char* (elt s 0)) (weblog-lookup-shortcut (substring s 1))) ((eq *weblog-equal-sign-char* (elt s 0)) (let ((form (car (read-from-string (concat "(" (substring s 1) ")"))))) (eval form))) (t (let ((form (car (read-from-string (concat "(weblog-macro-" s ")"))))) (eval form))))))) "{" "}"] 4]) #@56 Remove escape characters ("\") from the current buffer (defalias 'weblog-remove-escapes #[nil "eb\210\300\301\215\207" [--cl-block-nil-- (byte-code "\302\303\304#\211\204\305\306\303\"\210\307\310!\210\303u\210)\202" [*weblog-escape-string* pos search-forward nil t throw --cl-block-nil-- backward-delete-char 1] 5)] 2 (#$ . 15007)]) #@43 Return the contents of the current buffer (defalias 'weblog-buffer-contents #[nil "ed{\207" [] 2 (#$ . 15353)]) #@82 Save the current buffer as a weblog story using the *weblog-story-template-file* (defalias 'weblog-save-story #[nil "\303\304 *\207" [*weblog-story-template-file* *weblog-saving-story* *weblog-content-template-file* t weblog-save] 2 (#$ . 15471) nil]) (defalias 'weblog-story-file-p #[(file-name) "\306!\211AA)@\307!\227\310!\211\311\312\fG^O \311 GS] GO \f\227\232?\2059 \f  Q\227\232?-\207" [file-name x y dir file file-year weblog-file-mdy file-name-directory file-name-nondirectory 0 2 sep-char *weblog-directory*] 5]) #@99 Save the current buffer to an html file with the same name using the *weblog-page-template-file*. (defalias 'weblog-save #[(&optional template) "\303  \304\n\305\"+\207" [*weblog-content-template-file* *weblog-saving-story* file-name buffer-file-name weblog-funcall-with-init-params #[nil "\204\306\307!\207\306\310\311\312Q\"\210\313!\203 \314\315 \316!\211\204-\317P\320\202/ G\320GZO\321P\322\f$,\207" [file-name *weblog-story-template-file* *weblog-content-template-file* *weblog-saving-story* content ext message "No file for current buffer" "%s" "Saving " "..." weblog-story-file-p t weblog-buffer-contents file-name-extension "." 0 "html" weblog-save-internal ext-len html-file template] 6]] 3 (#$ . 16017) nil]) (defalias 'weblog-save-internal #[(file-name html-file content &optional template) "\204 \212\306\n!p\307\216 \310\311!8\312 \210\313\314!\315\211\211\316%\210\317 \210\fq\210\320 .\207" [template *weblog-page-template-file* html-file #1=#:G740536 buf content weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1# buf kill-buffer] 2)) 5 file-attributes erase-buffer insert-file-contents weblog-find-template nil t weblog-expand-buffer save-buffer file-name *weblog-story-modtime* *weblog-story-file* *weblog-story-content*] 6]) #@101 Search for a file named TEMPLATE in the directory of the *weblog-story-file* or one of its parents. (defalias 'weblog-find-template #[(template) "\302\303! \"\207" [*weblog-story-file* template weblog-seek-file file-name-directory] 3 (#$ . 17335)]) #@88 Switch to a file's buffer. If it existed already return true. Otherwise, return false. (defalias 'weblog-find-or-visit #[(file) "\302!\211\205\f q\210\303)\206\304\303\"\211q\210)\305\207" [file buf find-buffer-visiting t find-file-noselect nil] 4 (#$ . 17591)]) #@189 Upload the current buffer to the FTP directory. Upload only the HTML file for a text file if dont-upload-source is true. If FILE-NAME is non-nil, upload that file and don't generate html. (defalias 'weblog-upload #[(&optional dont-upload-source file-name) "\206\302 \303 \304\")\207" [file-name file buffer-file-name weblog-funcall-with-init-params #[nil "p\306\307 !\310\"\211\203\311 !\312P\202 \313 \f\"\2043\n\203+\314 \210\2023\315 \2033\316 \210 =\203@\317\320!\210\202t P\n\203L \202M \321\322!\"\210\n\203s\204s\311!\323P\321\322 !\"\210*\n\205\233q\210\324 \211\205\232\325 !\205\232\326 !\326\327!!\232\205\232\330!),\207" [buf file textp html-name *weblog-directory* name equalp file-name-extension "txt" file-name-sans-extension ".html" weblog-file-relative-name weblog-save-both buffer-modified-p save-buffer message "Buffer not in *weblog-directory*" weblog-write-text-to-file weblog-absolute-file-contents ".txt" weblog-latest-text-file weblog-file-in-base-dir weblog-file-mdy weblog-file weblog-make-rss file-name *weblog-ftp-directory* source ftp-name dont-upload-source latest-text-file] 5]] 3 (#$ . 17868) nil]) (defalias 'weblog-file-relative-name #[(filename directory) "\302\303 \"\304\305#\207" [filename directory weblog-replace-strings file-relative-name "\\" "/"] 4]) #@25 Write text to file-name (defalias 'weblog-write-text-to-file #[(text file-name) "\303!\211q\210\nc\210\304\216\305!*\207" [file-name buf text create-file-buffer ((byte-code "\301\302!\210\303!\207" [buf set-buffer-modified-p nil kill-buffer] 2)) write-file] 3 (#$ . 19223)]) (byte-code "\301B\302\301\207" [current-load-list *weblog-file-regexp* "^[0-9][0-9][0-9][0-9][0-9][0-9].txt$"] 2) (defalias 'weblog-year-dirs #[(&optional dir) "\204 \302\303\304\305\306#\"\207" [dir *weblog-directory* mapcan (lambda (f) (and (file-directory-p f) (list (file-name-nondirectory f)))) directory-files t "^[0-9][0-9]$"] 6]) #@64 Make the index.html file with *weblog-index-days* days of data (defalias 'weblog-make-index #[nil "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\305\306\307\310\311 \311\312 %\"\n\"\237\211@\313\f\314\315!\316#*\207" [*weblog-directory* *weblog-file-regexp* *weblog-index-days* *weblog-index-files* first-file last delete-if (lambda (file) (apply 'weblog-mdy-in-future-p (weblog-file-mdy file))) weblog-directory-files nil weblog-year-dirs weblog-save-internal weblog-file "index.html" generate-index] 10]] 3 (#$ . 19854) nil]) #@284 Create and upload the index file. If prefix arg is 0, generate and upload this month's files to regenerate their calendars. If prefix arg is 1, don't upload anything, just generate the index. If prefix arg is 2, upload all text files in the current directory and its sub-directories (defalias 'weblog-upload-index #[(&optional index-only) "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\306 \210\205 \307 \n\310=\2045\212\311\312\313!!p\314\216\315 \210, \2035\212\311\312 !!p\316\216\315 \210,\317 \210)\n\320=\203?\321 \207\n\322=\205G\323 \207" [*weblog-generate-month-index-p* month-file index-only #1=#:G740537 buf #2=#:G740538 weblog-make-index weblog-month-index 1 weblog-find-or-visit weblog-file "index.html" ((byte-code "\204\302 !\210\302\207" [#1# buf kill-buffer] 2)) weblog-upload ((byte-code "\204\302 !\210\302\207" [#2# buf kill-buffer] 2)) weblog-maybe-upload-previous-month-file 0 weblog-upload-month 2 weblog-upload-directory-text] 3]] 3 (#$ . 20425) "p"]) #@106 Regenerate html for and upload every ".txt" file in the current directory and all of its sub-directories (defalias 'weblog-upload-directory-text #[(&optional file) "\204\301 \302\303!\304\"\207" [file buffer-file-name weblog-map-all-files file-name-directory (lambda (file) (weblog-while-visiting-file buf file (weblog-upload)))] 3 (#$ . 21458)]) #@114 Upload last month's entries. Useful on the first day of a month to update the calendars in last month's entries. (defalias 'weblog-upload-last-month #[nil "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\300\301\302\303 !8!\207" [weblog-upload-month 4 decode-time current-time] 4]] 3 (#$ . 21817) nil]) #@35 Return (month day year) for today (defalias 'weblog-todays-mdy #[nil "\301\302 !\3038\3048\3058E)\207" [time decode-time current-time 4 3 5] 4 (#$ . 22157)]) #@381 Convert to HTML and upload all the weblog files for a month. You need to do this to update the calendars to have days later than when each day was initially generated. At the beginning of the next month, you need to do it for the previous month to make the next month link below the calendar point to the first day in this month. MONTH and YEAR default to today's month and year. (defalias 'weblog-upload-month #[(&optional month year) "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\306\307 !\3108\3118\3128\n E\313\314 \204$ \204D =\203A\315 \232\203A\316\n \"\202D\n\317\320\321$\210\322!.C\207" [time cur-day cur-month cur-year cur-mdy mdy decode-time current-time 3 4 5 nil weblog-latest-text-file weblog-first-text-file-this-month weblog-latest-month-before weblog-map-directory #[nil "p\303 \210q\210\304 \n\232?!)\207" [buf mdy cur-mdy weblog-save-both weblog-upload] 3] #[(file-name) "\306!\307!\n\232\206' \211@)=\205' \211AA@)=\205'\310\311 \"?\207" [file-name mdy latest-text-file month date year weblog-file-mdy file-name-nondirectory apply weblog-mdy-in-future-p] 4] weblog-format-2d latest-text-file year month *weblog-directory* *weblog-file-regexp*] 5]] 3 (#$ . 22326) nil]) (defalias 'weblog-latest-month-before #[(month year) "\303\304 \304\305 %\237\306\307\215)\207" [*weblog-directory* *weblog-file-regexp* files weblog-directory-files nil weblog-year-dirs --cl-block-nil-- (byte-code "\306\211\203T\n@\307 !\211\211AA)@ W\204F \211AA)@\247\2032 \211AA)@ \232\202; \211AA)@ =\203L @\nW\203L\310\311 @\"\210)\nA\211\204*\306\207" [files file #1=#:--dolist-temp--740539 mdy x year nil weblog-file-mdy throw --cl-block-nil-- month] 4)] 6]) #@30 Pad STRING on the left with  (defalias 'weblog-zero-pad #[(width string) " GZ\211\305 \fW\203\306 P T\211\202\n+ \207" [width string cnt i #1=#:--dotimes-temp--740540 0 "0"] 4 (#$ . 24094)]) #@107 Format a TIME as returned by decode-time for inclusion in an RSS file. Translate to GMT if GMT-P is true. (defalias 'weblog-rss-format-time #[(time &optional gmt-p) "@\211A@)\211AA)@\211AA)A@\3068\3078\3108\3118\203m Z\312\313 \f &!\211@A@\3148\3158\3068\3078\3108)\316\315\317#\320\321\314\322\323 \"\"\324\325\315\"\322\326\"\321\314\322\323\f\"\"\327\321\314\322\323 \"\"\327\321\314\322\323 \"\"\260 .\207" [time second x minute hour date 4 5 6 8 decode-time encode-time 2 3 calendar-day-name t ", " weblog-zero-pad format "%d" " " calendar-month-name " %d " ":" month year dow gmt-offset gmt-p #1=#:G740541] 16 (#$ . 24301)]) #@56 Return the latest text file that is not in the future. (defalias 'weblog-latest-text-file #[nil "\303\304 \305\306 %\307\310\215)\207" [*weblog-directory* *weblog-file-regexp* files weblog-directory-files nil t weblog-year-dirs --cl-block-nil-- (byte-code "\303\211\203 \n@\304\305\306 !\"\204\307\310 \"\210\nA\211\204*\303\207" [files file #1=#:--dolist-temp--740542 nil apply weblog-mdy-in-future-p weblog-file-mdy throw --cl-block-nil--] 5)] 6 (#$ . 25004)]) #@56 Return the latest text file that is not in the future. (defalias 'weblog-first-text-file-this-month #[nil "\306 \211@\211AA)@\307\310\311\312\313 \314\246\"\"\310\311\312\313 \"\"\315R\316 \317\f\317\320 %@,\207" [mdy month x year regexp *weblog-directory* weblog-todays-mdy "^" weblog-zero-pad 2 format "%d" 100 "[0-9][0-9].txt$" weblog-directory-files nil weblog-year-dirs] 8 (#$ . 25485)]) #@106 Replace the text between START-TAG and END-TAG with NEW-TEXT. Delete the entire tag if NEW-TEXT is null. (defalias 'weblog-replace-xml-tag-text #[(start-tag end-tag new-text) "eb\210\305!\305\n!\nGZ\f\204 GZ b\210\306 Z!\210\f\203)\fc\202-\306\nG!*\207" [start-tag start end-tag end new-text search-forward delete-char] 3 (#$ . 25891)]) #@47 Replace each instance of FROM with TO in TEXT (defalias 'weblog-replace-strings #[(text from to) "\306\307G G\310 \311\312\215-\207" [text from end from-len len pos "" 0 nil --cl-block-nil-- (byte-code "\306 \307\n$\211\204\310\311\n\312=\203 \202\f \n\313OP\"\210\f \n O Q \f\\\211 Y\203\310\311\f\"\210\202" [from text pos end res to search :start2 throw --cl-block-nil-- 0 nil from-len len] 7) res] 5 (#$ . 26244)]) #@103 In TEXT, change "&", "<", and ">" to their HTML entities. If MACROS-TOO is true, escape "{" with "\". (defalias 'weblog-neuter-tags #[(text &optional macros-too) "\302\303\304#\302\305\306#\302\307\310# \203\"\302\311\312#\302\313\314#\207" [text macros-too weblog-replace-strings "&" "&" "<" "<" ">" ">" "\\" "\\\\" "{" "\\{"] 4 (#$ . 26692)]) #@37 In TEXT, add a space to blank lines (defalias 'weblog-neuter-blank-lines #[(text) "\301\302\303#\207" [text weblog-replace-strings "\n\n" "\n \n"] 4 (#$ . 27065)]) #@114 Parse out the links between START and END in the current buffer. Return (text (url1 . text1) (url2 . text2) ...) (defalias 'weblog-parse-out-links #[(start end) "\212b\210\306\307\310\310G\311\f\311G \312\313\215\210 \n\237.B\207" [start res tags pos start-tag start-tag-len "" nil "" --cl-block-nil-- (byte-code "\306 \307#\211\204 \310\f {!P\311\312\313\"\210 \310\f\n Z{!P\n\306\314 \307#\211\2042\311\312\313\"\210\310\f\nS{!\313\306\315 \307#\211\204L\311\312\313\"\210\313f=\203W\fT\306 \307#\211\204g\311\312\313\"\210\310\f\nZ{!BB P*\n)\202" [start-tag end tag-pos res pos start-tag-len search-forward t weblog-neuter-tags throw --cl-block-nil-- nil "\"" ">" url-text url *weblog-newline-char* end-tag end-tag-len tags] 6) end-tag end-tag-len] 2 (#$ . 27237)]) #@154 For each url in the current buffer replace the url text with the result of (funcall F url-text). Currently, a url is the string after "href=" or "img=". (defalias 'weblog-map-urls #[(f) "\301\302\303\304$\210\301\305\303\304$\207" [f weblog-do-replacement "href=\"" "\"" t "src=\""] 5 (#$ . 28081)]) #@108 Make all the URLs absolute in the current buffer. Do this by prepending the *weblog-url* to relative URLs. (defalias 'weblog-make-urls-absolute #[nil "\300\301!\207" [weblog-map-urls (lambda (url) (if (weblog-url-absolute-p url) url (concat *weblog-url* url)))] 2 (#$ . 28390)]) #@99 Return true if the url string is relative. Currently this means it contains "http://" or "ftp://" (defalias 'weblog-url-absolute-p #[(url) "\301\302\227\"\206 \301\303\227\"\207" [url search "http://" "ftp://"] 3 (#$ . 28675)]) #@93 Create rss.xml from rss-template.xml and the newest html file. Upload it to the FTP server. (defalias 'weblog-make-rss #[(&optional text-file dont-upload) "\250\203 \301=\302\303 \304\"\207" [dont-upload 1 weblog-funcall-with-init-params buffer-file-name #[nil "\204\306 \212\307\310\311!!p\312\216\313\314\315!\314!\316\317 !(\320(\313\"\211)\321P*\322!+\323,\nq\210\324 \210\fc\210\325\326\327*#\210\325\330\331*#\210\325\332\333\334#\210\335\336!\210+q\210 c\210\337\340!8-.\341\334\310!\"\210*+q\210\342 \210eb\210\343\344\215\210\345+!\210\nq\210\346 \210/?\205\221\347 .\f\207" [text-file #1=#:G740543 rss-buf *weblog-generating-rss* template text weblog-latest-text-file weblog-find-or-visit weblog-file "rss.xml" ((byte-code "\204\302 !\210\302\207" [#1# rss-buf kill-buffer] 2)) t weblog-file-contents "rss-template.xml" decode-time current-time weblog-rss-format-time " GMT" create-file-buffer 0 erase-buffer weblog-replace-xml-tag-text "" "" "" "" "" "" nil backward-delete-char 1 5 file-attributes weblog-expand-buffer weblog-make-urls-absolute --cl-block-nil-- (byte-code "`\306\307\310\311#\211\203 \312Z\202d\n{\313\n\"\211A@)\314 !\315 \316\317#q\210\320c\210\321c\210 c\210\322c\210\323c\210 c\210\324c\210\325\326\327!!\211!!\330\"T\211\"!\210)r!q\210\331 \332\310!\210*c\210\333c\210\334c\210#q\210 \204{\335\336\310\"\210`\247\203\206`d\232\202\211`d=\203\221\335\336\310\"\210 b\210-\202" [start end real-end text x link search-forward "

" nil t 3 weblog-parse-out-links weblog-neuter-tags weblog-replace-strings "\n" " \n" "\n \n" " " " \n" " " "-" get-buffer-create generate-new-buffer-name " *string-output*" princ buffer-string kill-buffer "\n" " " throw --cl-block-nil-- rss-buf gmt-time standard-output idx html-buf] 5) kill-buffer save-buffer weblog-upload time gmt-time time-string html-buf idx *weblog-story-modtime* *weblog-story-file* dont-upload] 5]] 3 (#$ . 28912) "i\np"]) (defalias 'weblog-parse-space-separated-string #[(x) "\304\305\304\234\306\211\307\310\215,\207" [res e space s 0 " " nil --cl-block-nil-- (byte-code "\305 \306\n$\211\204 G\211\nX\203\307\310\f\237\"\210 \n O\fB T\202" [space x s e res position :start throw --cl-block-nil--] 6)] 4]) (defalias 'weblog-insert-bugmenot-macros #[nil "\205\212\304\305\211eb\210\306\307\215,\207" [*weblog-bugmenot-auto-list* domain e s 0 nil --cl-block-nil-- (byte-code "\306\307\310\311#\211\204\312\313\310\"\210\306\314\310\311#\211\204\312\313\310\"\210\306\315\310\311#\204+\312\313\310\"\210\316\316G` \\d\fY\203B\n`\f{\232\204\226 S{\310\211\203\225@\317 \"\211\203\213G\\\247\203xG\\ G\232\202\201G\\ G=\203\213\320\321 !\261\210)A\211\204R*+\202" [s e link link-len end domain search-forward "" " " "Untitled" *weblog-story-file* substring2 substring pos] 6]) (defalias 'weblog-macro-siteName #[nil "\207" [*weblog-site-name*] 1]) (defalias 'weblog-macro-byline #[nil "\207" [*weblog-byline*] 1]) (defalias 'weblog-macro-author #[nil "\207" [*weblog-author*] 1]) (defalias 'weblog-macro-email #[nil "\207" [*weblog-email*] 1]) (defalias 'weblog-macro-url #[nil "\207" [*weblog-url*] 1]) (defalias 'weblog-macro-lastUpdate #[nil "\211<\203 G\302=\203\303\304\"\202\305)\207" [*weblog-story-modtime* modtime 2 format-time-string "%m/%d/%Y; %H:%M:%S" "unknown"] 4]) (defalias 'weblog-macro-calendar #[(&optional file start-day) "\204 \n\204\f\306;\205\346\307!\211\205\345 \211@) \211AA@)8 \211A@)\310 \3118E!9 88\211\312U\203i88\3138\314\246!\205a\3138\315\246!?\206a\3138\316\246!)\203i\317\202m\320 SH*:\321 8\322#;\323 !<\324\325\326!!\211==\327\330!\210\327\331!\210>\203\243\327\332;\333<\334\260!\210\202\250\327\n" "

" "" "" " " "
\n\n" 7 "" mod weblog-princ-dayname calendar-day-name 3 t "\n" "\n" "\n" "" weblog-mdy-in-future-p weblog-day-file-exists weblog-princ-day "\n" 10 12 weblog-last-day-file-in-previous-month weblog-first-day-file-in-next-month "  " "\n\n\n" buffer-string kill-buffer nil year day last-day-of-month month-file month-name standard-output *weblog-generate-month-index-p* i #1=#:--dotimes-temp--740548 column-day #2=#:--dotimes-temp--740549 todayp exists next-month-file last-month-file next-month last-month] 7]) (defalias 'weblog-mdy-lessp #[(mdy1 mdy2) "@\211A@)\211AA)@\n@\n\211A@)\n\211AA)@ W\206G =\205G W\206G =\205G\fW.\207" [mdy1 x mdy2 y2 d2 m2 y1 d1 m1] 7]) #@54 Say whether a (month day year) list is in the future (defalias 'weblog-mdy-in-future-p #[(month day year) "\306\307 !\3108\3118\3128\313\n E\f \fE\",\207" [time cur-day cur-month cur-year month day decode-time current-time 3 4 5 weblog-mdy-lessp year] 5 (#$ . 37017)]) #@61 Return (list month day year) for a filename of "yymmdd.txt" (defalias 'weblog-file-mdy #[(file-name) "\300\301\302\217\207" [#1=#:G740550 (byte-code "\305\306!!\307 \310\311\310$\307 \311\312\313$\307 \312\314\313$\n\315W\203'\n\316\\\202*\n\317\\ \f\nE,\207" [file-name name yy mm dd file-name-sans-extension file-name-nondirectory weblog-integer-substring 0 2 4 1 6 70 2000 1900] 5) ((error))] 3 (#$ . 37301)]) (defalias 'weblog-integer-substring #[(str start end default) "\302\303\304\217\211\250\203\202 )\207" [res default #1=#:G740551 (byte-code "\303 \nO!@\207" [str start end read-from-string] 4) ((error))] 4]) #@51 Print a single day name for weblog-macro-calendar (defalias 'weblog-princ-dayname #[(dayname) "\301\302!\210\301!\210\301\303!\207" [dayname princ "" ""] 2 (#$ . 37943)]) #@46 Print a single day for weblog-macro-calendar (defalias 'weblog-princ-day #[(day &optional todayp) "\302\303!\210\203\f\302\304!\210\302\305!\210\302 !\210\302\306!\207" [todayp day princ "" ""] 2 (#$ . 38162)]) #@52 Return the name of the html file for the given day (defalias 'weblog-day-file #[(month day year) "\303\304\246!\303 !\303\n!\305R\207" [year month day weblog-format-2d 100 ".html"] 4 (#$ . 38426)]) #@52 Return the name of the html file for the given day (defalias 'weblog-day-text-file #[(month day year) "\303\304\246!\303 !\303\n!\305R\207" [year month day weblog-format-2d 100 ".txt"] 4 (#$ . 38631)]) #@57 Format an integer as two characters with a leading zero (defalias 'weblog-format-2d #[(n) "\302\303\"\211G\304=\203\305 P )\207" [n s format "%d" 1 "0"] 4 (#$ . 38840)]) #@58 Return true if the html file exists for a particular day (defalias 'weblog-day-file-exists #[(month day year) "\305 \n#\306 !\307P\310\311 !!\204\310\311\f!!\205 *\207" [month day year file other-file weblog-day-file file-name-sans-extension ".txt" file-attributes weblog-file] 4 (#$ . 39021)]) #@47 Find the last html file in the previous month (defalias 'weblog-last-day-file-in-previous-month #[(month year) "S\211\302=\203\303 S\304\305\215\210\306\307\215\207" [month year 0 12 --cl-block-nil-- (byte-code "\305\306 W\203#\307\n\305Z #\211\203\310\311\f\"\210)T\211\202*\312\207" [i #1=#:--dotimes-temp--740552 month year file 31 0 weblog-day-file-exists throw --cl-block-nil-- nil] 5) --cl-block-map-- (byte-code "\302\303\304 \305\306 &\207" [*weblog-directory* *weblog-file-regexp* weblog-map-directory nil #[(file-name) "\306!\211\211@) \211AA@)\211\247\203\f \232\202 \f =\203* \fX\2040\f W\2038\307\310\311\312 \"\"\210+\313\207" [file-name mdy date m y year weblog-file-mdy throw --cl-block-map-- apply weblog-day-file nil month] 6] t weblog-year-dirs] 7)] 3 (#$ . 39329)]) #@44 Find the first html file in the next month (defalias 'weblog-first-day-file-in-next-month #[(month year) "T\211\302V\203\303 T\304\305\215\210\306\307\215\207" [month year 12 1 --cl-block-nil-- (byte-code "\305\306 W\203&\307\nT #\310\311\f!!\203\312\313\f\"\210)T\211\202*\314\207" [i #1=#:--dotimes-temp--740553 month year file 31 0 weblog-day-file file-attributes weblog-file throw --cl-block-nil-- nil] 5) --cl-block-map-- (byte-code "\302\303\304 \303\305 &\207" [*weblog-directory* *weblog-file-regexp* weblog-map-directory nil #[(file-name) "\306!\211\211@) \211AA@)\211\247\203\f \232\202 \f =\203* \fY\2040\f V\2038\307\310\311\312 \"\"\210+\313\207" [file-name mdy date m y year weblog-file-mdy throw --cl-block-map-- apply weblog-day-file nil month] 6] weblog-year-dirs] 7)] 3 (#$ . 40154)]) (defalias 'weblog-macro-storyDate #[nil "\305!\211\205) \211@) \211AA@) \211A@)\306\307\310 !\311\f!\n %+)\207" [*weblog-story-file* mdy date year month weblog-file-mdy format "%s, %s %d, %d" calendar-day-name calendar-month-name] 7]) (defalias 'weblog-macro-blogToplevel #[(&optional dir) "\306!\n\203 \nP\202 \307\f \"\211\310\232\203\311 +\207" [*weblog-story-file* story-dir dir *weblog-directory* weblog-dir rel file-name-directory weblog-file-relative-name "./" ""] 4]) (defalias 'weblog-macro-dailyLink #[(&optional link-text) "\204\304\207\305\306 !!\307P \204\310\311\n\312\n\313 \314\260)\207" [*weblog-index-files* *weblog-story-file* file link-text "" file-name-sans-extension file-name-nondirectory ".html" "\"Daily\"" "" ""] 7]) #@100 Add a shortcut to the table. If the name begins with "=", don't wrap an anchor tag around the url. (defalias 'weblog-add-shortcut #[(&optional name url) "\300\301 \302\"\207" [weblog-funcall-with-init-params buffer-file-name #[nil "\306 G\307V\203)\n\247\203\n \307\234\232\202\n \307\234=\203) \227 \310\306OD\2024 \227\311 \312 \313\260D\f\204>C\202X\314@\f\"\211\203P A\241\210\202W\315\f!C\241\210))\316 \207" [entry url *weblog-equal-sign-char* name *weblog-shortcuts* old-entry nil 0 1 "" "" assoc last weblog-write-shortcuts] 7]] 3 (#$ . 41894) "s Add Shortcut Named: \ns URL: "]) #@61 Write the *weblog-shortcuts* to the *weblog-shortcuts-file* (defalias 'weblog-write-shortcuts #[nil "\306!\211\307P\310 !\203\311 \n\312\211$\210\212\313 !p\314\216\315 \210\316c\210 \317\211\203E@\320\f\"\210\321c\210A\211\204.*\322c\210\323 .\207" [*weblog-shortcuts-file* file bak #1=#:G740558 buf *weblog-shortcuts* weblog-file ".bak" file-exists-p copy-file t weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1# buf kill-buffer] 2)) erase-buffer "(\n" nil prin1 "\n" ")\n" save-buffer entry #2=#:--dolist-temp--740559] 6 (#$ . 42529)]) (defalias 'weblog-macro-year #[nil "\302\303\304!!\211\305\306\307 !8!\210)rq\210\310 \311\312!\210*\207" [standard-output *weblog-story-modtime* get-buffer-create generate-new-buffer-name " *string-output*" princ 5 decode-time buffer-string kill-buffer nil] 5]) (defalias 'weblog-macro-img #[(name &optional alignment) "\305!\211\2054\n\2033\306\307 \"\211\2032\306\310 \311 $\211\2031 \312\fO\313\n\314\315\314 \f\316O\260)) )\207" [name img alignment pos pos2 weblog-lookup-shortcut search "" :start2 0 " align=\"" "\"" " alt=\"" nil] 11]) #@59 Concatenates FILE with the directory of the current story (defalias 'weblog-in-story-directory #[(file) "\302! P\207" [*weblog-story-file* file file-name-directory] 2 (#$ . 43679)]) (defalias 'weblog-macro-include #[(file &optional neuter pre) "\305!\306 ! \203\307\n\310\"\f\203\311\312\n!\313Q\n*\207" [file real-file text neuter pre weblog-in-story-directory weblog-absolute-file-contents weblog-neuter-tags t "
" weblog-neuter-blank-lines "
"] 3]) (defalias 'weblog-macro-txtLink #[(&optional link-text) "\304!\305P\306 !\203\307 !\310\n\311 \206\n\312\260)\202 \313)\207" [*weblog-story-file* txt-file name link-text file-name-sans-extension ".txt" file-exists-p file-name-nondirectory "" "" ""] 5]) (defalias 'weblog-macro-jargon #[(&optional entry link) "\303 ;\203 \304\305O\226\306\307\"\204\310\202\303 \204#\311\2020\312\313 \314\n\206- \315\260)\207" [first-letter entry link nil 0 1 search "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0" "Hacker's Dictionary" "" ""] 7]) (defalias 'weblog-macro-pl #[(name) "?\205 ?\306\307 !!\310\n\205\311 \312Q\313\n\203 \314\202#\f\315P\316 \317\206,\316\320\260 *\207" [*weblog-index-files* *weblog-generating-rss* day-page-p *weblog-story-file* base-file name file-name-sans-extension file-name-nondirectory "" "" *weblog-pl-macro-text*] 9]) (defalias 'weblog-insert-permalink #[nil "\300c\210\301u\207" ["{pl \"\"}" -2] 1 nil nil]) (defalias 'weblog-macro-bugmenot #[(url) "\301\302\303\304 \305\306\260\207" [url "" "\"BugMeNot\"" ""] 7]) (defalias 'weblog-macro-bumper #[(back top-fore top-back top-msg bot-fore bot-back bot-msg) "\306\307\310\311\312\310 \311\313\n\311\314 \315\316\310\f\311\313 \311\314\315\316\317\320\321\322\260\207" [back top-back top-fore top-msg bot-back bot-fore "" "" "" "
" "" "" "" "" "
" "
" "
" bot-msg] 30]) (defalias 'weblog-macro-wikipedia #[(&optional entry link) "\204\302\207\303\304 \206\305\260\207" [entry link "Wikipedia" "" ""] 5]) (defalias 'weblog-month-file-name #[(month year &optional file-type) "\303\304\246!\303 !\n\206 \305Q\207" [year month file-type weblog-format-2d 100 ".txt"] 3]) #@92 Create a month index file for the current day file. Return the file name of the month file (defalias 'weblog-month-index #[(&optional file-name) "\206\302 \303 !\204\303\302 !P\304 \305\")\207" [file-name file buffer-file-name file-name-directory weblog-funcall-with-init-params #[nil "\306!\211\211@)\307 ! \211AA@)\310 \"!\311!\211\"!P# \312\246T\211$\313=\2038 T\2029 % \313=\203E\312\202G S\211&\312=\203T S\202U '\314 \"(\315 \")\316(!*\316)!+\317 \320\246!\321P,\322-\212\323#!.p/\324\216\325b\210\326\327 !\210\330\f\331\332 \"\333Rc\210- \210\334c\210\335\" \313 \336&\210\334c\210- \210\337 \210\340 \210\310 \321#.\207" [file mdy date month month-name year weblog-file-mdy calendar-month-name weblog-month-file-name file-name-directory 12 1 weblog-last-day-file-in-previous-month weblog-first-day-file-in-next-month weblog-month-file-for-day-file weblog-format-2d 100 ".html" #[nil "\306 \307\n! \f=\203\310\202\311\312 \"P#\210\313 \314\311\315\f\"Rc\210\316c\210\306\307!\f=\2037\310\202<\311\312\"P#\207" [dir prev-file prev-month prev-year year month-name weblog-insert-same-dir-link calendar-month-name "" format " %d" " | " " " "%d" " | " next-file next-month next-year] 7] weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1=#:G740560 buf kill-buffer] 2)) 0 delete-char buffer-size "\n" "\n

\n" weblog-insert-month-index-entries 31 save-buffer weblog-save-story month-file dir month-path next-month next-year prev-month prev-year last-prev-month-file first-next-month-file prev-file next-file year-file navigation-thunk #1# buf] 9]] 3 (#$ . 46553) nil]) #@49 Return the month file that goes with a day file (defalias 'weblog-month-file-for-day-file #[(day-file) "\205 \301\302O\303\304OP\207" [day-file 0 4 6 nil] 4 (#$ . 48243)]) #@51 Create a year index file for the current day file (defalias 'weblog-year-index #[(&optional file-name) "\206\302 \303 \304\")\207" [file-name file buffer-file-name weblog-funcall-with-init-params #[nil "\306!\211\211AA@)\307\310 \"\311 \312\246!\313P\314!\211 P T S \311 \312\246!\315P!\311\312\246!\315P\"\316#\212\317!$p%\320\216\321b\210\322\323 !\210\324\f\325Qc\210# \210\326c\210\327 \330\211 \331\332&\210\326c\210# \210\333 \210\334 .\207" [file mdy date year year-name year-file weblog-file-mdy format "%d" weblog-format-2d 100 ".txt" file-name-directory ".html" #[nil "\306 \307\310\n\"#\210\311 \312Qc\210\313c\210\306\f\307\310 \"\260#\207" [dir prev-file prev-year year-name next-file next-year weblog-insert-same-dir-link format " %d" " | " " " " | "] 6] weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1=#:G740561 buf kill-buffer] 2)) 0 delete-char buffer-size "\n" "\n

\n" weblog-insert-month-index-entries 1 12 31 save-buffer weblog-save-story dir year-path next-year prev-year prev-file next-file navigation-thunk #1# buf] 9]] 3 (#$ . 48425) nil]) #@137 Insert a link in the buffer to 'file', with 'text' as the link text. Just insert 'text' if the 'file' does not exist in directory 'dir' (defalias 'weblog-insert-same-dir-link #[(dir file text) "\205 \205 \304 P!\211\203\305c\210 c\210\306c\210 c\210\n\205$\307c)\207" [dir file linkp text file-exists-p "" ""] 4 (#$ . 49569)]) (defalias 'weblog-insert-month-index-entries #[(dir start-year start-month start-day end-year end-month end-day) "\211\nV\204= \211 V\2045\211 \nV\204-\306 \f $\210 T\211 \202)\fT\211\202 ) T\211\202)\307\207" [start-year year end-year start-month month end-month weblog-insert-day-index-entries nil start-day day end-day dir] 8]) (defalias 'weblog-insert-day-index-entries #[(dir month day year) "\306 \n#\307 \n# Pp `!\310\"\311#\312$\313!\205\220\314 \f\315 \nE!\316\317 \"\320!Q#\210\321c\210\212\322!%p&\323\216&q\210\324b\210\325\326\312\327#\330=\203p\325\331\312\327#\211\"\203s\330\"\332Z{#\202s\324b\210 q\210#c\210\333c\210\334\335\215\210 q\210\336c\210`$,$b.\207" [month day year day-file day-html dir weblog-day-text-file weblog-day-file 1 "Untitled" nil file-exists-p weblog-insert-same-dir-link calendar-day-name format ", %d " calendar-month-name ": " weblog-find-or-visit ((byte-code "\204\302 !\210\302\207" [#1=#:G740562 day-buf kill-buffer] 2)) 0 search-forward "\n" 4 "\n

\n" day-path buf buf-pos blank-line-pos title pos #1# day-buf] 8]) #@67 Return the last line of a string, not counting a trailing newline (defalias 'weblog-last-line #[(string) "G\211\303V\203\304\303\234 S\234=\203\303 SO)\305\304\306\307$\211\203.\nT\310O\202/)\207" [string len nl-pos 0 "\n" search :from-end t nil] 6 (#$ . 51743)]) #@63 Create month index files for all months that have a day file. (defalias 'weblog-make-all-month-indices #[(&optional file-name) "\206\305 \306 !\307 \310\f\310\311 %\210*\310\207" [file-name file dir *weblog-directory* *weblog-file-regexp* buffer-file-name file-name-directory weblog-directory-files nil weblog-year-dirs] 6 (#$ . 52028)]) #@78 Create and upload last month's index if today is the first day of this month (defalias 'weblog-maybe-upload-previous-month-file #[(&optional file-name) "\206\306 \307 !\211\211@)\n\211A@)\n\211AA@)\310\fS\"\311\f #\232\205\\\312\f\"\211\205[\313!\212\314\315!!p\316\216\317 -).\207" [file-name file mdy date month day buffer-file-name weblog-file-mdy weblog-first-day-file-in-next-month weblog-day-file weblog-last-day-file-in-previous-month weblog-month-index weblog-find-or-visit weblog-file ((byte-code "\204\302 !\210\302\207" [#1=#:G740563 buf kill-buffer] 2)) weblog-upload year first-day-file-this-month this-day-file last-file-prev-month month-file #1# buf] 5 (#$ . 52377)]) (byte-code "\301B\303\301!\204 \304 \302B\303\302!\204\305\306\307\"\310B\311\310\307\"\210\312\313\314\315#\207" [current-load-list weblog-mode-map weblog-mode-syntax-table boundp make-sparse-keymap make-char-table syntax-table nil weblog-mode-abbrev-table define-abbrev-table put weblog-mode derived-mode-parent html-mode] 4) #@466 Major mode derived from `html-mode' by `define-derived-mode'. It inherits all of the parent's attributes, but has its own keymap, abbrev table and syntax table: `weblog-mode-map', `weblog-mode-abbrev-table' and `weblog-mode-syntax-table' which more-or-less shadow html-mode's corresponding tables. In addition to any hooks its parent mode might have run, this mode runs the hook `weblog-mode-hook', as the final step during initialization. \{weblog-mode-map} (defalias 'weblog-mode #[nil "\306 \210\306\307N\203\310\311\307\312#\210\311\313\314\n!\204\315\n\316 \"\210\317 !\211\203.\f\320 =\2034\321 \322 \"\210) \203>\323\324 \"\210\325\n!\210\326 !\210\327 \210\330\331!\210\332\331\333\"\210\334\335!\207" [major-mode mode-name weblog-mode-map weblog-mode-syntax-table parent local-abbrev-table html-mode special put weblog-mode t "Weblog" keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table mapatoms #[(symbol) "\302\303! \"\206\304 \303!JK$\207" [symbol weblog-mode-abbrev-table intern-soft symbol-name define-abbrev] 5] use-local-map set-syntax-table auto-fill-mode make-local-variable sgml-indent-step set-variable nil run-hooks weblog-mode-hook weblog-mode-abbrev-table] 5 (#$ . 53450) nil]) #@39 Insert the shortcut delimiters: "{@}" (defalias 'weblog-insert-shortcut #[nil "\300c\210\301u\207" ["{@}" -1] 1 (#$ . 54755) nil]) #@30 Insert a source key: "[{@}]" (defalias 'weblog-insert-source-key #[nil "\300c\210\301u\207" ["[{@}]" -2] 1 (#$ . 54892) nil]) #@35 Insert an HTML comment: "" (defalias 'weblog-insert-comment #[nil "\300c\210\301u\207" ["" -3] 1 (#$ . 55024) nil]) #@49 Save the current buffer and create an html page (defalias 'weblog-save-both #[nil "\300 \205\n\301 \210\302 \303 \210\207" [buffer-modified-p weblog-process-charmap save-buffer weblog-save] 2 (#$ . 55160) nil]) (defalias 'weblog-process-charmap #[nil "\212\306\211\203%\n@\307b\210 @ \211A@)\310\311\215\210*\nA\211\204 +\306\207" [*weblog-char-map* pair #1=#:--dolist-temp--740564 x to from nil 0 --cl-block-nil-- (byte-code "\302\303\304#\204 \305\306\303\"\210\307 \304\211#\210\202" [from to search-forward nil t throw --cl-block-nil-- replace-match] 4)] 3]) #@70 Set the mode to weblog-mode for text files in the *weblog-directory* (defalias 'weblog-set-buffer-mode #[nil "\305 \306!\307!\310\311 \312\"\2053\313\n!\211\2053 G\nG\fY\205-\311 \n\314\fO\")\2053\315 ,\207" [file ext dir weblog-dir len buffer-file-name file-name-extension file-name-directory nil equalp "txt" weblog-seek-base-dir 0 weblog-mode] 5 (#$ . 55744) nil]) #@17 Yank a link tag (defalias 'weblog-yank-link #[nil "\300c\210\301 \210\302c\210\303u\207" ["\n" -4] 1 (#$ . 56130) nil]) (byte-code "\300\301!\204 \302\301\303\"\210\300\207" [fboundp line-beginning-position defalias point-at-bol] 3) #@27 Yank a blockquote section (defalias 'weblog-yank-blockquote #[nil "\300c\210\301 \210\302 `=\204\303c\210\304c\207" ["
\n" yank line-beginning-position "\n" "
"] 2 (#$ . 56395) nil]) (defalias 'weblog-insert-ellipsis #[nil "\300c\207" ["
\n
\n...
\n
\n"] 1 nil nil]) (defalias 'weblog-insert-break #[nil "\300c\207" ["
"] 1 nil nil]) (defalias 'weblog-italicize-word #[nil "\300c\210\301v\210\302c\207" ["" 1 ""] 1 nil nil]) (byte-code "\302>\203\n\202 \302B\303 \304\305#\210\303 \306\307#\210\303 \310\311#\210\303 \312\313#\210\303 \314\315#\210\303 \316\317#\210\303 \320\321#\210\303 \322\323#\210\303 \324\325#\210\303 \326\327#\210\303 \330\331#\210\303 \332\331#\210\303 \333\334#\210\303 \335\336#\207" [find-file-hooks weblog-mode-map weblog-set-buffer-mode define-key "\335" weblog-insert-source-key "\375" weblog-insert-shortcut "\241" weblog-insert-comment "" weblog-save-both "" weblog-add-shortcut " " weblog-upload-index "\201" weblog-yank-link "\225" weblog-yank-blockquote "\363" weblog-upload "\256" weblog-insert-ellipsis "\222" weblog-insert-break "\360" "i" weblog-italicize-word "\214" weblog-insert-permalink] 4)