From sscholl at common-lisp.net Thu Sep 1 13:24:22 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 1 Sep 2005 15:24:22 +0200 Subject: [cl-wiki-devel] cl-wiki: goals for development? In-Reply-To: <430E00DD.5040709@cavewallarts.com> References: <430E00DD.5040709@cavewallarts.com> Message-ID: <20050901132422.GI11447@parsec.no-spoon.de> On 2005-08-25 10:33:17, Kevin Griffin wrote: > One thing that I've liked about cl-wiki, as oppposed to cliki, is that > it's not dependent on SBCL internals. Maybe we can emphasize cl-wiki's > portability. I know it works under OpenMCL, and I'll be testing it under > a couple of others, as time permits. CLISP on Windows would be nice, too. And some time in the future a compiled binary with LispWorks. CL-WIKI uses TBNL which itself uses KMRCL. So every system and Common Lisp implementation which is supported by KMRCL should work. > Another option is to aim towards responsiveness or smallness of memory > footprint. > > What are anyone's thoughts on this? What do we want to see in cl-wiki? I'd like it to be usable by normal people. Who do or do not know other wikis like Wikipedia. On my last job a UseMod wiki was installed and most of the co-workers were able to form it to the specific needs. So I think it would be a good idea to learn from easy wikis engines like UseMod and common wiki software like MediaWiki. But not all features at once. And not all features at all. That said I'd like to keep the common wiki syntax for text formatting. No lispy stuff. But no CamelCase either. The typical wiki features which should be included next: - Versioning - Diffs - Recent Changes - More text formatting codes. "Recent Changes" could be coupled with an index which is needed to determine if a page exists or not, so you can display a ? (question mark) link after non existant but linked pages. Authorization and user management will be needed, too. But optional and discouraged in the spirit of wikis. I'd also like to avoid the use of SQL databases. Storing pages in the filesystem shouldn't be that complicated. And CL-WIKI can't be used on typical PHP+MySQL webspace anyways. :-) > Also- Stefan - what repository will have the development version of cl-wiki? The one which is coming soon. darcs () like every cool kid today. :-) Regards, Stefan From vehbisinan at gmail.com Fri Sep 2 07:02:05 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Fri, 02 Sep 2005 10:02:05 +0300 Subject: [cl-wiki-devel] How to detach from command line Message-ID: <4317F8ED.5030107@gmail.com> Hi, I wonder how you detach the cl-wiki as well as the cl interpreter from command line? We will use the system for production purposes, so we have to leave the system running on a linux server. Do you think that following is ok? $ nohup cmucl -load wiki.lsp & (wiki.lsp contains the initial script for loading cl-wiki and running it.) I tried and it is running. But I want to know how you accomplish that? Thanks a lot.. --vst From kevin at cavewallarts.com Fri Sep 2 07:39:16 2005 From: kevin at cavewallarts.com (Kevin Griffin) Date: Fri, 02 Sep 2005 00:39:16 -0700 Subject: [cl-wiki-devel] How to detach from command line In-Reply-To: <4317F8ED.5030107@gmail.com> References: <4317F8ED.5030107@gmail.com> Message-ID: <431801A4.6060800@cavewallarts.com> Vehbi Sinan Tunalioglu wrote: > Hi, > > I wonder how you detach the cl-wiki as well as the cl interpreter from > command line? We will use the system for production purposes, so we have > to leave the system running on a linux server. > > Do you think that following is ok? > > $ nohup cmucl -load wiki.lsp & > > (wiki.lsp contains the initial script for loading cl-wiki and running it.) > > I tried and it is running. But I want to know how you accomplish that? See Dan Barlow's detachtty http://www.cliki.net/detachtty We're using this, plus a system V init script mentioned earlier. You also may want to look at Fare's cl-launch (I haven't played with it yet). Kevin Griffin From clelland at gmail.com Fri Sep 2 07:40:45 2005 From: clelland at gmail.com (Ian Clelland) Date: Fri, 2 Sep 2005 00:40:45 -0700 Subject: [cl-wiki-devel] cl-wiki: goals for development? In-Reply-To: <20050901132422.GI11447@parsec.no-spoon.de> References: <430E00DD.5040709@cavewallarts.com> <20050901132422.GI11447@parsec.no-spoon.de> Message-ID: On 9/1/05, Stefan Scholl wrote: > Authorization and user management will be needed, too. But > optional and discouraged in the spirit of wikis. I tend to run all of my web services behind an apache front-end; by policy, apache is the only HTTP server I ever expose directly to the Internet. So authorization isn't a big thing for me. Any access control I need to implement can be done at the apache level. What's more important for me is that config file; I'd really like to have things like *wiki-directory* and *wiki-template-directory* in a plain text file somewhere; that'd make integration with apache much easier. I think that what initially attracted me to cl-wiki was its simplicity; I liked the fact that I could read all of the source code and easily understand what each piece did, and how to extend it, should the need arise. I think that, whatever new features get added to it, we should try to preserve that kind of simplicity. Regards, Ian Clelland From clelland at gmail.com Fri Sep 2 07:55:50 2005 From: clelland at gmail.com (Ian Clelland) Date: Fri, 2 Sep 2005 00:55:50 -0700 Subject: [cl-wiki-devel] promised patch file Message-ID: Until the darcs repository is set up, I'm going to have to resort to doing this :) This patch, to 0.0.3, contains my removal of *wiki-url* from generated links, and two new wikimarkup codes (the [[wikipage|description]] form, and the [http://externalsite] form) (Save this text to a file, then cd to the cl-wiki-0.0.3 directory, and run patch -p0 < patchfilename to update existing source files) Regards, Ian Clelland -------------------------------------------------- File: wiki.lisp.patch: --- /home/ian/cl-wiki-0.0.3/wiki.lisp 2005-09-02 00:46:25.000000000 -0700 +++ wiki.lisp 2005-08-31 15:54:21.000000000 -0700 @@ -33,7 +33,7 @@ (defun current-page () "Extracts the current page from the URL." - (subseq (tbnl:script-name) (length *wiki-url*))) + (let ((url (tbnl:script-name))) (subseq url (+ 1 (position #\/ url :from-end T))))) ;; From lemonodor's LSP (defun contents-of-file (pathname) @@ -56,7 +56,10 @@ (defparameter *simple-replace* '(("\\x0d?\\x0a" . "
") ("'''(.*?)'''" . "\\1") - ("''(.*?)''" . "\\1")) + ("''(.*?)''" . "\\1") + ("\\[\\[([^]\">|]*?)\\|([^]\">]*?)\\]\\]" . "\\2") + ("\\[\\[(.*?)\\]\\]" . "\\1") + ("\\[(http|ftp|mailto|gopher):([^\">].*?)\\]" . "\\1:\\2")) "List of conses. CAR is regexp and CDR replace-string for CL-PPCRE:REGEX-REPLACE-ALL.") @@ -68,9 +71,7 @@ (defun complex-translate (string) "Translate the more complex wiki codes." - (ppcre:regex-replace-all "\\[\\[(.*?)\\]\\]" - string - (format nil "\\1" *wiki-url*))) + string) ;; Code from Edi Weitz's TBNL @@ -110,7 +111,7 @@ :env `(:edit ,edit :base-url ,*wiki-url* :page-list ,*wiki-page-list* - :edit-url ,(format nil "~A~A?action=edit" *wiki-url* page) + :edit-url ,(format nil "~A?action=edit" page) :title ,page :body ,body))) @@ -121,7 +122,7 @@ (contents-of-file path) (format nil "Describe ~A here." page))) (body (with-html-output-to-string (s) - (:form :action (format nil "~A~A" *wiki-url* page) :method "POST" + (:form :action (format nil "~A" page) :method "POST" (:fieldset (:legend "Edit page") (:input :type "hidden" :name "action" :value "save") From vehbisinan at gmail.com Fri Sep 2 08:50:51 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Fri, 02 Sep 2005 11:50:51 +0300 Subject: [cl-wiki-devel] 2 problems for Cmucl Message-ID: <4318126B.2090102@gmail.com> Hi, Thanks for the previous answer. 2 problems appear for cmucl: 1. I should explicitly say wiki:*wiki-directory* instead as it appears on the home page of cl-wiki. Changed (setf *wiki-directory* #p"/home/vst/cl-wiki") to (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki") 2. In wiki.lisp, (html-mode) gives an error message. Is it a function of cl-who? I already installed cl-who. When I say html-mode :sgml instead of (html-mode) :sgml no problems appear. Do I loose much functionality? Same things apply for the sbcl as well. I hope I don't bother you with stupid questions :) I think you need testers :) --vst From sscholl at common-lisp.net Fri Sep 2 09:33:46 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Fri, 2 Sep 2005 11:33:46 +0200 Subject: [cl-wiki-devel] 2 problems for Cmucl In-Reply-To: <4318126B.2090102@gmail.com> References: <4318126B.2090102@gmail.com> Message-ID: <20050902093346.GN11447@parsec.no-spoon.de> On 2005-09-02 11:50:51, Vehbi Sinan Tunalioglu wrote: > 2 problems appear for cmucl: > > 1. I should explicitly say wiki:*wiki-directory* instead as it appears > on the home page of cl-wiki. Changed > (setf *wiki-directory* #p"/home/vst/cl-wiki") > to > (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki") > > 2. In wiki.lisp, (html-mode) gives an error message. Is it a function of > cl-who? I already installed cl-who. When I say > html-mode :sgml > instead of > (html-mode) :sgml > no problems appear. Do I loose much functionality? Is there any CL-WIKI home page I don't know of? The project page can be found under http://common-lisp.net/project/cl-wiki/ You need CL-WHO 0.6.0. The wiki:*wiki-directory* must be set to a directory pathname. For CMUCL this is done by letting the path end with a slash. (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki/") Regards, Stefan From vehbisinan at gmail.com Fri Sep 2 10:07:39 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Fri, 02 Sep 2005 13:07:39 +0300 Subject: [cl-wiki-devel] 2 problems for Cmucl In-Reply-To: <20050902093346.GN11447@parsec.no-spoon.de> References: <4318126B.2090102@gmail.com> <20050902093346.GN11447@parsec.no-spoon.de> Message-ID: <4318246B.2080108@gmail.com> Stefan Scholl wrote: > > Is there any CL-WIKI home page I don't know of? The project page > can be found under http://common-lisp.net/project/cl-wiki/ I meant http://common-lisp.net/project/cl-wiki/ You are right, it is project page. > > You need CL-WHO 0.6.0. > It seems that debian package for cl-who is not the one we need. I installed latest version of cl-who and it works... > The wiki:*wiki-directory* must be set to a directory pathname. > For CMUCL this is done by letting the path end with a slash. > > (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki/") On the *project* page, it is (setf *wiki-directory* #p"/home/vst/cl-wiki/") not (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki/") One might change it. Thanks a lot... --vst From kevin at cavewallarts.com Fri Sep 2 20:21:46 2005 From: kevin at cavewallarts.com (Kevin Griffin) Date: Fri, 02 Sep 2005 13:21:46 -0700 Subject: [cl-wiki-devel] 2 problems for Cmucl In-Reply-To: <4318246B.2080108@gmail.com> References: <4318126B.2090102@gmail.com> <20050902093346.GN11447@parsec.no-spoon.de> <4318246B.2080108@gmail.com> Message-ID: <4318B45A.2000301@cavewallarts.com> Vehbi Sinan Tunalioglu wrote > On the *project* page, it is > > (setf *wiki-directory* #p"/home/vst/cl-wiki/") > > not > > (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki/") > > One might change it. > > Thanks a lot... > --vst This was changed many weeks ago. If you could provide a link to this out of date information, there may be some hope of fixing it. Otherwise, I'm going to assume that the documentation that's out there is accurate. With many thanks, Kevin From kevin at cavewallarts.com Fri Sep 2 20:52:35 2005 From: kevin at cavewallarts.com (Kevin Griffin) Date: Fri, 02 Sep 2005 13:52:35 -0700 Subject: [cl-wiki-devel] 2 problems for Cmucl Message-ID: <4318BB93.7000208@cavewallarts.com> Vehbi Sinan Tunalioglu wrote > On the *project* page, it is > > (setf *wiki-directory* #p"/home/vst/cl-wiki/") > > not > > (setf wiki:*wiki-directory* #p"/home/vst/cl-wiki/") > > One might change it. > > Thanks a lot... > --vst It may also be that you are behind a caching proxy, showing you an older version of the main page. I apologize for my impatience earlier - it's just that this was addressed on the mailing list (the archives of which are fully available, and searchable.) http://common-lisp.net/pipermail/cl-wiki-devel/ Thanks! From vehbisinan at gmail.com Sun Sep 4 16:23:47 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Sun, 04 Sep 2005 19:23:47 +0300 Subject: [cl-wiki-devel] Encoding question and a patch Message-ID: <431B1F93.7040007@gmail.com> Hi, One question, One patch :) Question: We want to maintain a turkish wiki. If we edit a page containing UTF characters (dedicated for turkish symbols) they are all translated to unknown stupid characters. By each addition, it goes worse... 1) ? 2) ?? 3) ???? 4) ????????? etc. I think, #'with-html-output-to-string or #'esc are responsible for that. Any idea? Patch: http://www.vsthost.com/materials/wordpress/patches20050904.tar.gz Changelog: * added url-decode for space character (correct display of page title) * added backup functionality (a trivial way, no versioning or differencing, just puttin' the previous version of the file into a backup folder. useful for emergency...) * exported *wiki-page-list* along with *wiki-url*, *wiki-directory* etc... Note: First, apply Ian's patch and then, mine to cl-wiki-0.0.3. Ian's patch is in the folder as well. Best Regards, --vst From clelland at gmail.com Tue Sep 6 04:17:31 2005 From: clelland at gmail.com (Ian Clelland) Date: Mon, 5 Sep 2005 21:17:31 -0700 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> Message-ID: On 9/5/05, Ian Clelland wrote: > On 9/4/05, Vehbi Sinan Tunalioglu wrote: > > Thanks Ian... > > > > I could not find the #'esc documentation either... I'm trying to fix it, > > too. > > I looked into it a bit more yesterday, there is no "esc" function per > se; rather cl-who interprets a form like (esc "some string") as if it > were an actual function call to (escape-char "some string") > > It's the cl-who:escape-char function which is giving us these > problems. I'm looking at possible ways of shadowing that function with > our own version, or possibly just bypassing it and writing a utf-8 > decoding function for cl-wiki. After a lot of hassle dealing with cl-who, and after determining that the sbcl that comes with Debian Sarge does not, in fact, support unicode, and after thinking a lot about where to position a custom UTF-8 decoder, I have realised that the best solution to this problem is to simply not use the form (esc content). Instead, we can use (str (escape-for-html content)), and use exactly the same formatting rules in the editting textarea as we do for the standard page output. ------------------------------------------------------------ Quick patch file: --- /home/ian/cl-wiki-0.0.3/wiki.lisp 2005-09-05 21:07:10.000000000 -0700 +++ wiki.lisp 2005-09-05 21:05:14.000000000 -0700 @@ -127,7 +127,7 @@ (:legend "Edit page") (:input :type "hidden" :name "action" :value "save") (:p - (:textarea :name "content" :rows "15" :cols "60" (esc content))) + (:textarea :name "content" :rows "15" :cols "60" (str (escape-for-html content)))) (:input :type "submit" :value "Save")))))) (execute-main-template page body :edit t))) ------------------------------------------------------------ I've tried this on our running site, and it loads and saves unicode documents with no problems. Let me know if this works for you. Regards, Ian Clelland From emres at bilgi.edu.tr Tue Sep 6 07:11:34 2005 From: emres at bilgi.edu.tr (=?ISO-8859-1?Q?Emre_Sevin=E7?=) Date: Tue, 06 Sep 2005 10:11:34 +0300 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> Message-ID: <431D4126.4070608@bilgi.edu.tr> Ian Clelland wrote: >On 9/5/05, Ian Clelland wrote: > > >>On 9/4/05, Vehbi Sinan Tunalioglu wrote: >> >> >>>Thanks Ian... >>> >>>I could not find the #'esc documentation either... I'm trying to fix it, >>>too. >>> >>> >>I looked into it a bit more yesterday, there is no "esc" function per >>se; rather cl-who interprets a form like (esc "some string") as if it >>were an actual function call to (escape-char "some string") >> >>It's the cl-who:escape-char function which is giving us these >>problems. I'm looking at possible ways of shadowing that function with >>our own version, or possibly just bypassing it and writing a utf-8 >>decoding function for cl-wiki. >> >> > > >After a lot of hassle dealing with cl-who, and after determining that >the sbcl that comes with Debian Sarge does not, in fact, support >unicode, > But the one that comes with Debian SID (unstable) does support Unicode, as far as I know. I had similar problems with older versions of SBCL on my Debian GNU/Linux PC at home and the solution was to upgrade to the unstable package (which also needed an upgrade from linux 2.4 to 2.6.11). And I think CLISP supports it too. So is it a problem only related to the Lisp compiler used for cl-wiki? > and after thinking a lot about where to position a custom >UTF-8 decoder, I have realised that the best solution to this problem >is to simply not use the form (esc content). Instead, we can use (str >(escape-for-html content)), and use exactly the same formatting rules >in the editting textarea as we do for the standard page output. > > >... >I've tried this on our running site, and it loads and saves unicode >documents with no problems. > >Let me know if this works for you. > I hope it works for us, too. (Sinan will probably apply and try and inform everybody today) :) Istanbul Bilgi University's Lisp User's Group trusts you: http://church.cs.bilgi.edu.tr/lcg -- Emre Sevinc eMBA Software Development Istanbul Bilgi University http://www.bilgi.edu.tr From clelland at gmail.com Tue Sep 6 07:49:16 2005 From: clelland at gmail.com (Ian Clelland) Date: Tue, 6 Sep 2005 00:49:16 -0700 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <431D4126.4070608@bilgi.edu.tr> References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> Message-ID: On 9/6/05, Emre Sevin? wrote: > But the one that comes with Debian SID (unstable) does support Unicode, > as far as I know. I had similar > problems with older versions of SBCL on my Debian GNU/Linux PC at home > and the solution > was to upgrade to the unstable package (which also needed an upgrade > from linux 2.4 to 2.6.11). > > And I think CLISP supports it too. So is it a problem only related to > the Lisp compiler used > for cl-wiki? Well, the wiki pages on disk are not loaded in any special way, so I believe that they default to 8-bit ascii mode. Because of this, the escape-string function of cl-who is inappropriate for handling utf-8-encoded data (it just encodes each byte as a separate character). If there was full unicode support in my version of sbcl, we might be able to pass :external-format :utf-8 to #'with-open-file and get multi-byte support internally. If that were the case, then escape-string would probably work correctly, and would create the proper sgml entities for unicode characters. I don't know if that technique is portable at all across the different implementations of common lisp. The change that I made just makes cl-wiki ignore high-ascii characters, and only escape <, >, ", ', and &. Since HTTP is an 8-bit-safe protocol, there is no problem sending unicode characters directly. (The only other change I made, which I forgot to mention earlier, is that I added the line to the head section of my main template.) > I hope it works for us, too. (Sinan will probably apply and try and > inform everybody today) :) > > Istanbul Bilgi University's Lisp User's Group trusts you: > > http://church.cs.bilgi.edu.tr/lcg Thanks; I'll try not to let you down :) Regards, Ian Clelland From sscholl at common-lisp.net Tue Sep 6 14:03:26 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Tue, 6 Sep 2005 16:03:26 +0200 Subject: [cl-wiki-devel] Living without *wiki-url* In-Reply-To: References: Message-ID: <20050906140326.GN11447@parsec.no-spoon.de> Thanks for the idea and patch, Ian! I had to add a change to WIKI:INIT, too. The prefix dispatcher isn't needed anymore. Now I just set TBNL:*DEFAULT-HANDLER* to 'WIKI From sscholl at common-lisp.net Tue Sep 6 14:24:44 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Tue, 6 Sep 2005 16:24:44 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <431B1F93.7040007@gmail.com> References: <431B1F93.7040007@gmail.com> Message-ID: <20050906142444.GO11447@parsec.no-spoon.de> On 2005-09-04 19:23:47, Vehbi Sinan Tunalioglu wrote: > Changelog: > * added url-decode for space character (correct display of page title) Good thinking. I've changed it a bit: Call to TBNL::URL-DECODE at CURRENT-PAGE. The page name should always be decoded. > * added backup functionality (a trivial way, no versioning or > differencing, just puttin' the previous version of the file into a > backup folder. useful for emergency...) I must think about it. Don't know if I will put this into the 0.0.4 release. One of the next (after 0.0.4) few important steps is to plan a format and way who to save the pages with metadata, etc. Regards, Stefan From sscholl at common-lisp.net Tue Sep 6 19:28:14 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Tue, 6 Sep 2005 21:28:14 +0200 Subject: [cl-wiki-devel] New Release CL-WIKI 0.0.4 Message-ID: <20050906192814.GP11447@parsec.no-spoon.de> New release CL-WIKI 0.0.4 CL-WIKI is a wiki engine for Common Lisp. It uses TBNL, CL-PPCRE, CL-WHO and CL-EMB. Can be used stand-alone, with Apache + mod_lisp, or behind any http proxy. You can download it from http://common-lisp.net/project/cl-wiki/ or install with ASDF-Install. CL-USER> (asdf:operate 'asdf:load-op :asdf-install) CL-USER> (asdf-install:install :cl-wiki) Changes: - Locking for CL-EMB. CL-WIKI now needs CL-EMB >= 0.4.2 - config file - added simple start script for CMUCL - removed *WIKI-URL* - URL en- and decode page names - more wiki codes (links with other text and external links) [[Page|Text]] ==> Generates a link to named page and links Text. [http://www.somepage.example/] ==> Inserts external link External links get the class "external" + the url scheme. rel="nofollow" is used. [http://www.google.com/] --> http://www.google.com/ From clelland at gmail.com Tue Sep 6 20:20:35 2005 From: clelland at gmail.com (Ian Clelland) Date: Tue, 6 Sep 2005 13:20:35 -0700 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 In-Reply-To: References: <20050906192814.GP11447@parsec.no-spoon.de> Message-ID: On 9/6/05, Stefan Scholl wrote: > New release CL-WIKI 0.0.4 > Changes: > - config file I can tell already that I'm really going to get a lot of use out of the config file :) I really appreciate that it's just a plain lisp file as well, and not a text file with a custom parser. Looking through the source, I can see that the other thing I'd like to be able to set in the config file is (html-mode) -- I'm trying to get a lot of my sites into XHTML, and it looks like that would be an easy way to do it with all of the wikis (well, that and an XML-ish template file) -- that's a wishlist feature though, not critical at all. > External links get the class "external" + the url scheme. > rel="nofollow" is used. That's a really good idea; makes me wish I'd thought of it first. The release looks really good, Stefan -- the only thing I'm going to have to do to my local versions is to fix the over-zealous encoding in the edit page, so that unicode characters can be supported. Now I'm off to do more testing, and to upgrade the servers :) Regards, Ian Clelland From emres at bilgi.edu.tr Tue Sep 6 21:12:16 2005 From: emres at bilgi.edu.tr (Emre Sevinc) Date: Wed, 7 Sep 2005 00:12:16 +0300 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 Message-ID: <9940BA60F8E6414F9F0307DD411BCF6906BF92C1@Ex2k.bilgi.networks> >I can tell already that I'm really going to get a lot of use out of >the config file :) I really appreciate that it's just a plain lisp >file as well, and not a text file with a custom parser. Did somebody say power of Lisp? ;-) >> External links get the class "external" + the url scheme. >> rel="nofollow" is used. >That's a really good idea; makes me wish I'd thought of it first. Is there syntax for HTML effects like, H1, bold, italic, numbered list, unnumbered list, etc.? -------------- next part -------------- An HTML attachment was scrubbed... URL: From clelland at gmail.com Tue Sep 6 21:26:35 2005 From: clelland at gmail.com (Ian Clelland) Date: Tue, 6 Sep 2005 14:26:35 -0700 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 In-Reply-To: <9940BA60F8E6414F9F0307DD411BCF6906BF92C1@Ex2k.bilgi.networks> References: <9940BA60F8E6414F9F0307DD411BCF6906BF92C1@Ex2k.bilgi.networks> Message-ID: On 9/6/05, Emre Sevinc wrote: > Is there syntax for HTML effects like, H1, bold, italic, numbered > list, unnumbered list, etc.? There's no way to include raw HTML tags in the wiki content, if that's what you mean. There are a couple of different standards, I think, for including things like

,

, that are really easy to implement. Something like this: ****This is a heading**** -->

This is a heading

***This is a subheading*** -->

This is a subheading

(h2 and h3 would probably be better, and reserve h1 for the page title in the template) Lists are more complicated; they are usually formatted somthing like this: . First list element . Second list element for unordered lists, and 1. First list element 2. Second list element for ordered lists (the actual numbering doesn't do anything, but the fact that there are numbers there tells the wiki engine to use an
    tag). Those are much more difficult to implement, and I'm not certain that they can be done with regular expression replacement at all. CL-wiki already has bold and italic effects, in the form of and tags (use double and triple quote marks, respectively). The CSS almost always makes those into italic and bold fonts. Regards, Ian Clelland From vehbisinan at gmail.com Wed Sep 7 05:41:01 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Wed, 07 Sep 2005 08:41:01 +0300 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050906142444.GO11447@parsec.no-spoon.de> References: <431B1F93.7040007@gmail.com> <20050906142444.GO11447@parsec.no-spoon.de> Message-ID: <431E7D6D.3090908@gmail.com> Stefan Scholl wrote: > On 2005-09-04 19:23:47, Vehbi Sinan Tunalioglu wrote: > >>* added backup functionality (a trivial way, no versioning or >>differencing, just puttin' the previous version of the file into a >>backup folder. useful for emergency...) > > > I must think about it. Don't know if I will put this into the > 0.0.4 release. One of the next (after 0.0.4) few important steps > is to plan a format and way who to save the pages with metadata, > etc. > I would better not use my idea :) This is a very trivial way. You are mentioning a metadata format: This would be nice. Besides, we could employ the "difference" method for handling the versions. --vst From vehbisinan at gmail.com Wed Sep 7 05:58:19 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Wed, 07 Sep 2005 08:58:19 +0300 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> Message-ID: <431E817B.7010507@gmail.com> It works!!! No need for: Since the http body content is already is marked as utf8 in header... I just changed (esc content) to (str (escape-for-html content)) Thanks... Ian Clelland wrote: > On 9/6/05, Emre Sevin? wrote: > >>But the one that comes with Debian SID (unstable) does support Unicode, >>as far as I know. I had similar >>problems with older versions of SBCL on my Debian GNU/Linux PC at home >>and the solution >>was to upgrade to the unstable package (which also needed an upgrade >>from linux 2.4 to 2.6.11). >> >>And I think CLISP supports it too. So is it a problem only related to >>the Lisp compiler used >>for cl-wiki? > > > Well, the wiki pages on disk are not loaded in any special way, so I > believe that they default to 8-bit ascii mode. Because of this, the > escape-string function of cl-who is inappropriate for handling > utf-8-encoded data (it just encodes each byte as a separate > character). > > If there was full unicode support in my version of sbcl, we might be > able to pass :external-format :utf-8 to #'with-open-file and get > multi-byte support internally. If that were the case, then > escape-string would probably work correctly, and would create the > proper sgml entities for unicode characters. > > I don't know if that technique is portable at all across the different > implementations of common lisp. > > The change that I made just makes cl-wiki ignore high-ascii > characters, and only escape <, >, ", ', and &. Since HTTP is an > 8-bit-safe protocol, there is no problem sending unicode characters > directly. > > (The only other change I made, which I forgot to mention earlier, is > that I added the line > > to the head section of my main template.) > > >>I hope it works for us, too. (Sinan will probably apply and try and >>inform everybody today) :) >> >>Istanbul Bilgi University's Lisp User's Group trusts you: >> >>http://church.cs.bilgi.edu.tr/lcg > > > Thanks; I'll try not to let you down :) > > > Regards, > > Ian Clelland > > _______________________________________________ > cl-wiki-devel mailing list > cl-wiki-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/cl-wiki-devel From vehbisinan at gmail.com Wed Sep 7 05:58:35 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Wed, 07 Sep 2005 08:58:35 +0300 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 In-Reply-To: References: <9940BA60F8E6414F9F0307DD411BCF6906BF92C1@Ex2k.bilgi.networks> Message-ID: <431E818B.7070202@gmail.com> Ian Clelland wrote: > On 9/6/05, Emre Sevinc wrote: > > Those are much more difficult to implement, and I'm not certain that > they can be done with regular expression replacement at all. No way :( Actually, theoretically it is possible. This is especially very hard to do when nested lists are in concern. On the other hand, thinks like headings can be easily added. I propose adding a #'complex-replace for complicated tasks. #'simple-replace is simple enough to be modified by anyone else. Formatting lists is a matter of following the context. We should first start an
      or
        if and only if the list item is the first list item of the following item sequence and close it when the sequence is finished. We should use some flags for this process. Any other idea? --vst From sscholl at common-lisp.net Wed Sep 7 12:39:37 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 14:39:37 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <431E817B.7010507@gmail.com> References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> Message-ID: <20050907123937.GY11447@parsec.no-spoon.de> On 2005-09-07 08:58:19, Vehbi Sinan Tunalioglu wrote: > I just changed (esc content) to (str (escape-for-html content)) Hmm. It seems this could be fixed by setting CL-WHO's *ESCAPE-CHAR-P* to an other test function which then lets CL-WHO's ESCAPE-STRING behave like CL-WIKI's ESCAPE-FOR-HTML. I'll give it a try after work. From sscholl at common-lisp.net Wed Sep 7 12:47:38 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 14:47:38 +0200 Subject: [cl-wiki-devel] New Release CL-WIKI 0.0.4 In-Reply-To: <20050906192814.GP11447@parsec.no-spoon.de> References: <20050906192814.GP11447@parsec.no-spoon.de> Message-ID: <20050907124738.GZ11447@parsec.no-spoon.de> On 2005-09-06 21:28:14, Stefan Scholl wrote: > Changes: > > - Locking for CL-EMB. CL-WIKI now needs CL-EMB >= 0.4.2 Sorry, that was a bit small. CL-WIKI 0.0.4 needs CL-EMB 0.4.2 (or higher) :-) That's the curse of 0.0.x versions. From sscholl at common-lisp.net Wed Sep 7 17:17:10 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 19:17:10 +0200 Subject: [cl-wiki-devel] New Release CL-WIKI 0.0.5 Message-ID: <20050907171710.GD11447@parsec.no-spoon.de> New release CL-WIKI 0.0.5 CL-WIKI is a wiki engine for Common Lisp. It uses TBNL, CL-PPCRE, CL-WHO and CL-EMB. Can be used stand-alone, with Apache + mod_lisp, or behind any http proxy. You can download it from http://common-lisp.net/project/cl-wiki/ or install with ASDF-Install. CL-USER> (asdf:operate 'asdf:load-op :asdf-install) CL-USER> (asdf-install:install :cl-wiki) Changes: - Problem with utf-8 editing solved From sscholl at common-lisp.net Wed Sep 7 17:22:31 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 19:22:31 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050907123937.GY11447@parsec.no-spoon.de> References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> Message-ID: <20050907172231.GE11447@parsec.no-spoon.de> On 2005-09-07 14:39:37, Stefan Scholl wrote: > On 2005-09-07 08:58:19, Vehbi Sinan Tunalioglu wrote: > > I just changed (esc content) to (str (escape-for-html content)) > > Hmm. It seems this could be fixed by setting CL-WHO's *ESCAPE-CHAR-P* > to an other test function which then lets CL-WHO's ESCAPE-STRING > behave like CL-WIKI's ESCAPE-FOR-HTML. Yeah, right. I'm setting it in INIT *escape-char-p* #'(lambda (c) (find c "<>&")) Now it's possible to use the symbol ESC with CL-WHO like intended. From sscholl at common-lisp.net Wed Sep 7 17:35:42 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 19:35:42 +0200 Subject: [cl-wiki-devel] darcs repository Message-ID: <20050907173542.GF11447@parsec.no-spoon.de> Hi! I wanted to wait until there's a better base for working with CL-WIKI's code, but it seems there is some demand for a darcs repository _now_. You can get darcs at http://www.darcs.net/ Getting the CL-WIKI development(!) darcs repository: darcs get http://common-lisp.net/project/cl-wiki/repos/cl-wiki_dev If you want to update just enter the directory of your local darcs repository and darcs pull Please remember: This repository can contain broken code! Regards, Stefan From clelland at gmail.com Wed Sep 7 18:47:19 2005 From: clelland at gmail.com (Ian Clelland) Date: Wed, 7 Sep 2005 11:47:19 -0700 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050907172231.GE11447@parsec.no-spoon.de> References: <431B1F93.7040007@gmail.com> <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> Message-ID: On 9/7/05, Stefan Scholl wrote: > I'm setting it in INIT > > *escape-char-p* #'(lambda (c) (find c "<>&")) > > Now it's possible to use the symbol ESC with CL-WHO like > intended. So, at this point, is there any difference at all between #'escape-for-html in cl-wiki and #'escape-string in cl-who? As far as I can tell, they do exactly the same thing (though in slightly different ways). #'escape-string is a bit more flexible, but is about 45% slower on my test machine. It seems a bit odd to have both of these functions available now, just to call one at display time and the other at edit time. Regards, Ian Clelland From sscholl at common-lisp.net Wed Sep 7 21:48:32 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Wed, 7 Sep 2005 23:48:32 +0200 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 In-Reply-To: <431E818B.7070202@gmail.com> References: <9940BA60F8E6414F9F0307DD411BCF6906BF92C1@Ex2k.bilgi.networks> <431E818B.7070202@gmail.com> Message-ID: <20050907214832.GH11447@parsec.no-spoon.de> On 2005-09-07 08:58:35, Vehbi Sinan Tunalioglu wrote: > Formatting lists is a matter of following the context. We should first > start an
          or
            if and only if the list item is the first list > item of the following item sequence and close it when the sequence is > finished. We should use some flags for this process. Any other idea? I've changed the way translation is done with 0.0.4. Now it's only one *REPLACE-LIST* and one function TRANSLATE-WIKI-CODE. The magic lies within CL-PPCRE's REGEX-REPLACE-ALL which can have a really complex replacement parameter: http://weitz.de/cl-ppcre/#regex-replace To replace [[foo]] with an internal link with URL encoded page name: ("\\[\\[(.*?)\\]\\]" . ,(list "" 0 "")) The register counting starts at 0 when you use this notation. And the best part is the function designator! Wonderful things could be done with this. I've just tested a Regex in The Regex Coach which could be used for lists. I'll try to implement it tomorrow. Here's the regex: ^\*.*?(?=^[^\*]|\z) (with m and s active - multi-line-mode and single-line-mode) This has matched a complete bullet list with a "*" on the beginning of each line. Regards, Stefan From emres at bilgi.edu.tr Wed Sep 7 22:24:27 2005 From: emres at bilgi.edu.tr (Emre Sevinc) Date: Thu, 8 Sep 2005 01:24:27 +0300 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 Message-ID: <9940BA60F8E6414F9F0307DD411BCF6906BF92C2@Ex2k.bilgi.networks> -----Original Message----- From: cl-wiki-devel-bounces at common-lisp.net on behalf of Stefan Scholl Sent: Thu 9/8/2005 12:48 AM To: cl-wiki-devel at common-lisp.net Subject: Re: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 >I'll try to implement it tomorrow. > >Here's the regex: ^\*.*?(?=^[^\*]|\z) > >(with m and s active - multi-line-mode and single-line-mode) > >This has matched a complete bullet list with a "*" on the >beginning of each line. The more features you add, the happier we are. The more it resembles wiki syntax of wikipedia the easier for us. :) After we have lists I think we'll have everything for primitive document formatting (implementing is another matter of course but I don't think it'll take much of your time). What about the "history" of a document. Any plans to implement some simple backup mechanism so that if someone messes a page we can restore it? Thanks in advance, Emre Sevinc Istanbul Bilgi University -------------- next part -------------- An HTML attachment was scrubbed... URL: From emres at bilgi.edu.tr Wed Sep 7 22:28:55 2005 From: emres at bilgi.edu.tr (Emre Sevinc) Date: Thu, 8 Sep 2005 01:28:55 +0300 Subject: [cl-wiki-devel] darcs repository Message-ID: <9940BA60F8E6414F9F0307DD411BCF6906BF92C3@Ex2k.bilgi.networks> ----Original Message----- From: cl-wiki-devel-bounces at common-lisp.net on behalf of Stefan Scholl Sent: Wed 9/7/2005 8:35 PM To: cl-wiki-devel at common-lisp.net Subject: [cl-wiki-devel] darcs repository >You can get darcs at http://www.darcs.net/ > >Getting the CL-WIKI development(!) darcs repository: > > > darcs get http://common-lisp.net/project/cl-wiki/repos/cl-wiki_dev > > >If you want to update just enter the directory of your local >darcs repository and > > darcs pull > >Please remember: This repository can contain broken code! Being an occasional CVS user (and someone who didn't use darcs at all) for simple version cont. stuff I just wonder the reasons why darcs is getting popular especially among Lispers. Is simply that "darcs is better CVS" or some specific feature for management? Ease of use? -------------- next part -------------- An HTML attachment was scrubbed... URL: From sscholl at common-lisp.net Thu Sep 8 07:45:59 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 8 Sep 2005 09:45:59 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: References: <431BDD59.9070707@gmail.com> <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> Message-ID: <20050908074559.GB17052@parsec.no-spoon.de> On 2005-09-07 11:47:19, Ian Clelland wrote: > On 9/7/05, Stefan Scholl wrote: > > I'm setting it in INIT > > > > *escape-char-p* #'(lambda (c) (find c "<>&")) > > > > Now it's possible to use the symbol ESC with CL-WHO like > > intended. > > So, at this point, is there any difference at all between > #'escape-for-html in cl-wiki and #'escape-string in cl-who? ESCAPE-STRING gets called when the symbol ESC is found inside CL-WHO's WITH-HTML-OUTPUT-TO-STRING > As far as I can tell, they do exactly the same thing (though in > slightly different ways). #'escape-string is a bit more flexible, but > is about 45% slower on my test machine. It seems a bit odd to have > both of these functions available now, just to call one at display > time and the other at edit time. ESC is the common style when using CL-WHO. I don't want it to look more complicated than necessary at the moment. All the examples for CL-WHO use ESC. Speed isn't that important at the moment. The page is displayed more often than edited. We can tweak this later when needed. Maybe with a patch for CL-WHO itself. Have you tested both functions with a larger string? About 20 KiB or something? From the code I've seen ESCAPE-STRING seems to be optimized that way that it outputs larger chunks of code between the characters that needed escaping. Regards, Stefan From sscholl at common-lisp.net Thu Sep 8 08:33:54 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 8 Sep 2005 10:33:54 +0200 Subject: [cl-wiki-devel] Re: New Release CL-WIKI 0.0.4 In-Reply-To: References: <20050906192814.GP11447@parsec.no-spoon.de> Message-ID: <20050908083354.GC17052@parsec.no-spoon.de> On 2005-09-06 13:20:35, Ian Clelland wrote: > On 9/6/05, Stefan Scholl wrote: > > New release CL-WIKI 0.0.4 > > Changes: > > - config file > > I can tell already that I'm really going to get a lot of use out of > the config file :) I really appreciate that it's just a plain lisp > file as well, and not a text file with a custom parser. Maybe at some time there will be a config editor for people who don't like Lisp. But at the moment I don't know of any easy format which can handle lists of key-value pairs like the one for *WIKI-PAGE-LIST* I've tested trivial-configuration-parser and thought about implementing an INI file parser myself. But at the end only Lisp can make me happy. :-) > Looking through the source, I can see that the other thing I'd like to > be able to set in the config file is (html-mode) -- I'm trying to get > a lot of my sites into XHTML, and it looks like that would be an easy > way to do it with all of the wikis (well, that and an XML-ish template > file) -- that's a wishlist feature though, not critical at all. I've changed my mind about XHTML some months ago. The effort to do it right isn't worth the gain for the most time. I've seen so many sites and software that claim to use XHTML but it's still corrupt HTML with some other DTD and other style for empty elements and attributes. And most of the browsers don't even support HTML 4 and CSS 2 in complete. The patch for wiki codes for external links I've received sets a class="external http" for http links. That's really only needed for CSS 2 unaware browsers like Internet Explorer (which can't cope with the right XHTML content-type, by the way). With Firefox you can use more sophisticated CSS selectors. That's why I've sent Edi Weitz a patch for CL-WHO (released as 0.6.0) to let it output normal HTML. And it's really easier to implement new wiki codes without thinking about 100 % right HTML output in combination with other codes. With XHTML I would feel really bad if CL-WIKI could produce invalid XHTML. But it should be possible to implement some scheme to output XHTML in the future. Must check the Accept header to determine the right content-type and maybe implement a call to tidy to turn the output into valid XHTML. Just don't think about it at the moment. Gives only headaches. Regards, Stefan From sscholl at common-lisp.net Thu Sep 8 08:58:06 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 8 Sep 2005 10:58:06 +0200 Subject: [cl-wiki-devel] New Release CL-WIKI 0.0.4 In-Reply-To: <20050906192814.GP11447@parsec.no-spoon.de> References: <20050906192814.GP11447@parsec.no-spoon.de> Message-ID: <20050908085806.GD17052@parsec.no-spoon.de> On 2005-09-06 21:28:14, Stefan Scholl wrote: > - more wiki codes (links with other text and external links) > > [[Page|Text]] ==> Generates a link to named page > and links Text. Wikipedia has an example for this: San Francisco also has [[public transport|public transportation]]. But this is discouraged and the following should be used instead: San Francisco also has [[public transport]]ation. That's currently not supported by CL-WIKI. The link isn't expanded to contain "ation". By the way: the pattern to implement this can't use \w or \W, because with some Common Lisp implementation you have multiple characters for UTF-8 encoded characters instead of just one. Yes, there are more link special features which aren't supported yet. But it's no good idea to spend too much time with the wiki codes at the moment. Other basics are more important. Regards, Stefan From sscholl at common-lisp.net Thu Sep 8 09:10:04 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 8 Sep 2005 11:10:04 +0200 Subject: [cl-wiki-devel] darcs repository In-Reply-To: <9940BA60F8E6414F9F0307DD411BCF6906BF92C3@Ex2k.bilgi.networks> References: <9940BA60F8E6414F9F0307DD411BCF6906BF92C3@Ex2k.bilgi.networks> Message-ID: <20050908091004.GE17052@parsec.no-spoon.de> On 2005-09-08 01:28:55, Emre Sevinc wrote: > > darcs get http://common-lisp.net/project/cl-wiki/repos/cl-wiki_dev > > Being an occasional CVS user (and someone who didn't use darcs at all) > for simple version cont. stuff I just wonder the reasons why darcs > is getting popular especially among Lispers. Is simply that "darcs is > better CVS" or some specific feature for management? Ease of use? Nearly every VCS after CVS is better than CVS. Renaming files, directories, etc. And darcs is easy to set up. You don't need a special kind of server software. So every webspace can become host for your repository. darcs is ideal for OSS. You can get/pull a repository to your local machine and then you have a local repository. You can commit changes local, revert them again, work with it like with any other VCS. And at the end you generate a patch for the maintainer. Regards, Stefan From sscholl at common-lisp.net Thu Sep 8 09:54:33 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Thu, 8 Sep 2005 11:54:33 +0200 Subject: [cl-wiki-devel] Thoughts about page storage Message-ID: <20050908095433.GH17052@parsec.no-spoon.de> Hi! I'm thinking about making one directory per page. Inside this directory the metadata can be stored. Together with different versions (or diffs?) of the page. Regards, Stefan From clelland at gmail.com Thu Sep 8 18:06:08 2005 From: clelland at gmail.com (Ian Clelland) Date: Thu, 8 Sep 2005 11:06:08 -0700 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050908074559.GB17052@parsec.no-spoon.de> References: <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> <20050908074559.GB17052@parsec.no-spoon.de> Message-ID: On 9/8/05, Stefan Scholl wrote: > > ESCAPE-STRING gets called when the symbol ESC is found inside > CL-WHO's WITH-HTML-OUTPUT-TO-STRING That's what I discovered while looking at the Unicode issue a couple of days ago. Does this mean that we don't need #'escape-for-html at all, and can just call #'escape-string in its place? Assuming, of course, that you don't have bigger and better plans for #'escape-for-html in the future. > Have you tested both functions with a larger string? About 20 KiB > or something? From the code I've seen ESCAPE-STRING seems to be > optimized that way that it outputs larger chunks of code between > the characters that needed escaping. The code looks like it's optimised for large blocks of characters which don't need to be escaped, with just a few escaped characters here and there. Of course, since we're not using it to escape all chars > 127, that should describe most text that it gets called on. I only tested it on a small string, ~100B. 1.5e6 iterations of #'escape-for-html ran in 282s, averaged over several runs, while #'esacape-string took 412s. Not the most scientific test, I'm sure, but I was just looking for big, order-of-magnitude differences. -- Regards, Ian Clelland From vehbisinan at gmail.com Thu Sep 8 18:28:42 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Thu, 08 Sep 2005 21:28:42 +0300 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <20050908095433.GH17052@parsec.no-spoon.de> References: <20050908095433.GH17052@parsec.no-spoon.de> Message-ID: <432082DA.6040106@gmail.com> Using directories might be a good idea. I think that it could also enable us to implement categories/subcategories/sub*categories. What kind of metadata do you think to be stored? --vst Stefan Scholl wrote: > Hi! > > I'm thinking about making one directory per page. Inside this > directory the metadata can be stored. Together with different > versions (or diffs?) of the page. > > > Regards, > Stefan > > _______________________________________________ > cl-wiki-devel mailing list > cl-wiki-devel at common-lisp.net > http://common-lisp.net/cgi-bin/mailman/listinfo/cl-wiki-devel From clelland at gmail.com Thu Sep 8 18:55:51 2005 From: clelland at gmail.com (Ian Clelland) Date: Thu, 8 Sep 2005 11:55:51 -0700 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <432082DA.6040106@gmail.com> References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> Message-ID: On 9/8/05, Vehbi Sinan Tunalioglu wrote: > Using directories might be a good idea. I think that it could also > enable us to implement categories/subcategories/sub*categories. Please no :) Categories, if they're required, can be implemented either through metadata, or automatically-managed "Catalog index pages". But not through a directory hierarchy; that just breaks the wiki flat-namespace model. -- Regards, Ian Clelland From vehbisinan at gmail.com Thu Sep 8 19:36:27 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Thu, 08 Sep 2005 22:36:27 +0300 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> Message-ID: <432092BB.5010803@gmail.com> :) Ok. "Catalog index pages"? It sounds like a manual way. Am I right? --vst Ian Clelland wrote: > On 9/8/05, Vehbi Sinan Tunalioglu wrote: > >>Using directories might be a good idea. I think that it could also >>enable us to implement categories/subcategories/sub*categories. > > > Please no :) > Categories, if they're required, can be implemented either through > metadata, or automatically-managed "Catalog index pages". But not > through a directory hierarchy; that just breaks the wiki > flat-namespace model. > > From clelland at gmail.com Thu Sep 8 19:48:19 2005 From: clelland at gmail.com (Ian Clelland) Date: Thu, 8 Sep 2005 12:48:19 -0700 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <432092BB.5010803@gmail.com> References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> <432092BB.5010803@gmail.com> Message-ID: On 9/8/05, Vehbi Sinan Tunalioglu wrote: > :) Ok. > > "Catalog index pages"? It sounds like a manual way. Am I right? I can imagine a scheme where, when you put a page into a category, an index page somewhere gets automatically updated by the wiki... I don't know if it's a good scheme, but I think you could do that sort of thing without a lot of manual intervention. -- Regards, Ian Clelland From vehbisinan at gmail.com Thu Sep 8 20:43:36 2005 From: vehbisinan at gmail.com (Vehbi Sinan Tunalioglu) Date: Thu, 08 Sep 2005 23:43:36 +0300 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> <432092BB.5010803@gmail.com> Message-ID: <4320A278.5030508@gmail.com> Ian Clelland wrote: > On 9/8/05, Vehbi Sinan Tunalioglu wrote: > >>:) Ok. >> >>"Catalog index pages"? It sounds like a manual way. Am I right? > > > I can imagine a scheme where, when you put a page into a category, an > index page somewhere gets automatically updated by the wiki... I don't > know if it's a good scheme, but I think you could do that sort of > thing without a lot of manual intervention. > Nice. But how to do that recursively or how to find the category of a given page? Actually, this is a question of whether we want to implement the idea of categories, and if yes, how comprehensive it should be. Stefan, the maintainer, should maybe decide it. But, I think that I'll need a category mechanism that can grow in depth as well, like subcategories. --vst From emres at bilgi.edu.tr Thu Sep 8 21:28:33 2005 From: emres at bilgi.edu.tr (Emre Sevinc) Date: Fri, 9 Sep 2005 00:28:33 +0300 Subject: [cl-wiki-devel] Thoughts about page storage Message-ID: <9940BA60F8E6414F9F0307DD411BCF6906BF92CC@Ex2k.bilgi.networks> -----Original Message----- From: cl-wiki-devel-bounces at common-lisp.net on behalf of Vehbi Sinan Tunalioglu Sent: Thu 9/8/2005 11:43 PM To: clelland at gmail.com Cc: cl-wiki-devel at common-lisp.net Subject: Re: [cl-wiki-devel] Thoughts about page storage Ian Clelland wrote: >> On 9/8/05, Vehbi Sinan Tunalioglu wrote: >> >>>:) Ok. >>> >>>"Catalog index pages"? It sounds like a manual way. Am I right? >> >> >> I can imagine a scheme where, when you put a page into a category, an >> index page somewhere gets automatically updated by the wiki... I don't >> know if it's a good scheme, but I think you could do that sort of >> thing without a lot of manual intervention. >> >Nice. But how to do that recursively or how to find the category of a >given page? Actually, this is a question of whether we want to implement >the idea of categories, and if yes, how comprehensive it should be. >Stefan, the maintainer, should maybe decide it. But, I think that I'll >need a category mechanism that can grow in depth as well, like >subcategories. Some questions: - Do we really need categorization feature? (Of course, it depends on who uses cl-wiki for which purposes) - Do we really need automatic update of some index, index page, etc.? I mean if I create a category I can update a page. If I forget then some time I'll remember, this doesn't pose a disaster. - Do we really need categories? Refer to Wikipedia. Does it have any? I mean, what if I create a page called "Categories" then make some alphabetic links (or categories) and place the links under them accordingly? Wikipedia doesn't do that automagically (you'll have to do a lot of editing), why should cl-wiki do? My 2 cents (like it or not :) Regards, Emre Sevinc Istanbul Bilgi University eMBA Development Team -------------- next part -------------- An HTML attachment was scrubbed... URL: From sscholl at common-lisp.net Fri Sep 9 07:10:24 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Fri, 9 Sep 2005 09:10:24 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: References: <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> <20050908074559.GB17052@parsec.no-spoon.de> Message-ID: <20050909071024.GP17052@parsec.no-spoon.de> On 2005-09-08 11:06:08, Ian Clelland wrote: > On 9/8/05, Stefan Scholl wrote: > > ESCAPE-STRING gets called when the symbol ESC is found inside > > CL-WHO's WITH-HTML-OUTPUT-TO-STRING > > That's what I discovered while looking at the Unicode issue a couple > of days ago. Does this mean that we don't need #'escape-for-html at > all, and can just call #'escape-string in its place? Yes, we can. :-) > Assuming, of course, that you don't have bigger and better plans for > #'escape-for-html in the future. Not at the moment. ESCAPE-FOR-HTML came first -- before CL-WHO. I've just tested ESCAPE-FOR-HTML and ESCAPE-STRING on my slow (Dual Pentium III, 650 MHz, 512 MiB RAM) system: WIKI> (let ((data (contents-of-file "Testpage"))) (time (test-escape-string data 10000))) Warning: TIME form in a non-null environment, forced to interpret. Compiling entire form will produce more accurate times. ; Evaluation took: ; 106.06 seconds of real time ; 102.52042 seconds of user run time ; 3.545461 seconds of system run time ; 68,755,459,972 CPU cycles ; [Run times include 5.84 seconds GC run time] ; 0 page faults and ; 820,724,440 bytes consed. ; NIL WIKI> (let ((data (contents-of-file "Testpage"))) (time (test-escape-for-html data 10000))) Warning: TIME form in a non-null environment, forced to interpret. Compiling entire form will produce more accurate times. ; Evaluation took: ; 106.14 seconds of real time ; 100.6897 seconds of user run time ; 5.441173 seconds of system run time ; 68,810,304,097 CPU cycles ; [Run times include 7.21 seconds GC run time] ; 0 page faults and ; 1,140,486,136 bytes consed. ; NIL (Test loop is inside the _compiled_ test functions.) "Testpage" has 32 KiB and 4 #\& to escape. In lines 18, 42, 103, and 368 of 433 lines. CMUCL 18e, Linux 2.6. ESCAPE-STRING seems to be better with this kind of texts. It's a bit early to optimize a program, but not too early to decide if a function is obsolete when there's an alternative. Regards, Stefan PS: Removed ESCAPE-FOR-HTML in development repository. From sscholl at common-lisp.net Fri Sep 9 09:13:01 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Fri, 9 Sep 2005 11:13:01 +0200 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050909071024.GP17052@parsec.no-spoon.de> References: <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> <20050908074559.GB17052@parsec.no-spoon.de> <20050909071024.GP17052@parsec.no-spoon.de> Message-ID: <20050909091301.GQ17052@parsec.no-spoon.de> On 2005-09-09 09:10:24, Stefan Scholl wrote: > "Testpage" has 32 KiB and 4 #\& to escape. In lines 18, 42, 103, > and 368 of 433 lines. CMUCL 18e, Linux 2.6. CMUCL 19a, not 18e. From clelland at gmail.com Fri Sep 9 09:12:03 2005 From: clelland at gmail.com (Ian Clelland) Date: Fri, 9 Sep 2005 02:12:03 -0700 Subject: [cl-wiki-devel] Encoding question and a patch In-Reply-To: <20050909071024.GP17052@parsec.no-spoon.de> References: <431D4126.4070608@bilgi.edu.tr> <431E817B.7010507@gmail.com> <20050907123937.GY11447@parsec.no-spoon.de> <20050907172231.GE11447@parsec.no-spoon.de> <20050908074559.GB17052@parsec.no-spoon.de> <20050909071024.GP17052@parsec.no-spoon.de> Message-ID: On 9/9/05, Stefan Scholl wrote: > On 2005-09-08 11:06:08, Ian Clelland wrote: > > On 9/8/05, Stefan Scholl wrote: > ESCAPE-STRING seems to be better with this kind of texts. It's a > bit early to optimize a program, but not too early to decide if a > function is obsolete when there's an alternative. It's all still working well over here (that darcs repository is already coming in handy :) I agree, it's never too early to remove redundant code and simplify the system. -- Regards, Ian Clelland From emres at bilgi.edu.tr Fri Sep 9 11:23:39 2005 From: emres at bilgi.edu.tr (=?ISO-8859-1?Q?Emre_Sevin=E7?=) Date: Fri, 09 Sep 2005 14:23:39 +0300 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: References: <9940BA60F8E6414F9F0307DD411BCF6906BF92CC@Ex2k.bilgi.networks> Message-ID: <432170BB.10700@bilgi.edu.tr> Ian Clelland wrote: >On 9/8/05, Emre Sevinc wrote: > > >> - Do we really need categories? Refer to Wikipedia. Does it >> have any? I mean, what if I create a page called "Categories" then >> make some alphabetic links (or categories) and place the links >> under them accordingly? Wikipedia doesn't do that automagically (you'll >> have to do a lot of editing), why should cl-wiki do? >> >> > >[...] >ZWiki, for Zope, doesn't do categories, but instead maintains a >document "tree", in which nodes have "parents", and that parent-child >relationship can be changed by an editor. It uses this to create >hierarchical lists of nodes, while still keeping the nodes all in a >flat namespace. > Namespace this, namespace that. I simply don't think we need that functionality. > >I'm fairly certain that Ward's Wiki (c2.com) only does categories >manually; you have to create a category page, and link your other >pages to it by hand. It doesn't seem to suffer for that despite its >huge size. > And thinking about how much Bilgi University's Lisp User's Group's wiki can grow, I don't think that'll be a torture, too. (yes, I'm just thinking about our usage, shame on me :) > > >Honestly, I don't think that cl-wiki needs categories in order to be a >"real wiki"; if there is a simple and elegant way of incorporating >that sort of metadata, I'd be all for it, but I suspect that it would >just take away from the simplicity of the thing right now. > I agree with you %100. Give me a simple and flexible content management system and let me mold it into any structure I want. Isn't Lisp all about flexibility (yes, not so simple but that's another story) :) Emre S. From sscholl at common-lisp.net Fri Sep 9 12:21:41 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Fri, 9 Sep 2005 14:21:41 +0200 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <4320A278.5030508@gmail.com> References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> <432092BB.5010803@gmail.com> <4320A278.5030508@gmail.com> Message-ID: <20050909122141.GR17052@parsec.no-spoon.de> On 2005-09-08 23:43:36, Vehbi Sinan Tunalioglu wrote: > Nice. But how to do that recursively or how to find the category of a > given page? Actually, this is a question of whether we want to implement > the idea of categories, and if yes, how comprehensive it should be. > Stefan, the maintainer, should maybe decide it. But, I think that I'll > need a category mechanism that can grow in depth as well, like > subcategories. Most wikis use categories, even if their wiki engines don't have propper support for it. The most primitive wikis just put a wiki word of the category on the page. Then the listing of every page in that category is done with the backreference feature (mostly a link on the page name in the head of a page). A propper way for categories could be a nice "USP" (hehe) for CL-WIKI. But I think this feature is not one of the top priorities because with a nice storage system it should be possible to add this very easy. An index for *all* pages would be nice (highlighting internal links for non existant pages). Categories could be added with a similar functionality. The namespace should stay flat. A category could be another meta information about a page. Together with the last modified date, author, etc. Regards, Stefan From sscholl at common-lisp.net Fri Sep 9 13:19:03 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Fri, 9 Sep 2005 15:19:03 +0200 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <20050909122141.GR17052@parsec.no-spoon.de> References: <20050908095433.GH17052@parsec.no-spoon.de> <432082DA.6040106@gmail.com> <432092BB.5010803@gmail.com> <4320A278.5030508@gmail.com> <20050909122141.GR17052@parsec.no-spoon.de> Message-ID: <20050909131903.GS17052@parsec.no-spoon.de> On 2005-09-09 14:21:41, Stefan Scholl wrote: > An index for *all* pages would be nice (highlighting internal > links for non existant pages). Some global data structure that could contain all the names and the number of the current version. This number will be used as part of a file name within the page's directory. All access to this global data structure must be done with locking. Every write access to this data structure must write the data to a file, too, which can be loaded when you start CL-WIKI. Scanning all directories for a file name with the highest number isn't very difficult. ==> A desaster recovery is trivial. From clelland at gmail.com Fri Sep 9 07:38:42 2005 From: clelland at gmail.com (Ian Clelland) Date: Fri, 9 Sep 2005 00:38:42 -0700 Subject: [cl-wiki-devel] Thoughts about page storage In-Reply-To: <9940BA60F8E6414F9F0307DD411BCF6906BF92CC@Ex2k.bilgi.networks> References: <9940BA60F8E6414F9F0307DD411BCF6906BF92CC@Ex2k.bilgi.networks> Message-ID: On 9/8/05, Emre Sevinc wrote: > - Do we really need categories? Refer to Wikipedia. Does it > have any? I mean, what if I create a page called "Categories" then > make some alphabetic links (or categories) and place the links > under them accordingly? Wikipedia doesn't do that automagically (you'll > have to do a lot of editing), why should cl-wiki do? Well, Mediawiki (Wikipedia) definitely has categories, although I have no idea how they're managed , or whether they're a lot of work to maintain. They look like they're generated automatically. ZWiki, for Zope, doesn't do categories, but instead maintains a document "tree", in which nodes have "parents", and that parent-child relationship can be changed by an editor. It uses this to create hierarchical lists of nodes, while still keeping the nodes all in a flat namespace. I'm fairly certain that Ward's Wiki (c2.com) only does categories manually; you have to create a category page, and link your other pages to it by hand. It doesn't seem to suffer for that despite its huge size. Honestly, I don't think that cl-wiki needs categories in order to be a "real wiki"; if there is a simple and elegant way of incorporating that sort of metadata, I'd be all for it, but I suspect that it would just take away from the simplicity of the thing right now. -- Regards, Ian Clelland From sscholl at common-lisp.net Mon Sep 26 17:52:20 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Mon, 26 Sep 2005 19:52:20 +0200 Subject: [cl-wiki-devel] Problems getting the remote address Message-ID: <20050926175220.GJ1494@parsec.no-spoon.de> I've added a new storage system and the possibility to read and write some meta data together with the page content. But there's one problem left: There's no way to get the remote address of a connected client in the stand-alone version of TBNL. At the moment you can only access this information when you use Apache+mod_lisp+TBNL or a proxy in front of TBNL stand-alone. And I think I have to make a config option to tell CL-WIKI if it's used behind a proxy. From sscholl at common-lisp.net Mon Sep 26 18:14:26 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Mon, 26 Sep 2005 20:14:26 +0200 Subject: [cl-wiki-devel] Problems getting the remote address In-Reply-To: <20050926175220.GJ1494@parsec.no-spoon.de> References: <20050926175220.GJ1494@parsec.no-spoon.de> Message-ID: <20050926181426.GK1494@parsec.no-spoon.de> By the way: You need TBNL 0.7.0 or higher for the current version in the darcs repository. From sscholl at common-lisp.net Mon Sep 26 22:22:55 2005 From: sscholl at common-lisp.net (Stefan Scholl) Date: Tue, 27 Sep 2005 00:22:55 +0200 Subject: [cl-wiki-devel] Problems getting the remote address In-Reply-To: <20050926175220.GJ1494@parsec.no-spoon.de> References: <20050926175220.GJ1494@parsec.no-spoon.de> Message-ID: <20050926222255.GL1494@parsec.no-spoon.de> On 2005-09-26 19:52:20, Stefan Scholl wrote: > At the moment you can only access this information when you use > Apache+mod_lisp+TBNL or a proxy in front of TBNL stand-alone. > > And I think I have to make a config option to tell CL-WIKI if it's > used behind a proxy. The option is called "reverse-proxy" (default NIL) and must be set to t if your stand-alone TBNL is behind a proxy. The saved remote address is NIL when a stand-alone TBNL without reverse proxy is used. Otherwise the address mod_lisp or the header "X-Forwarded-For" (proxy) tells us. I think most of the people will use Apache+mod_lisp or a reverse proxy (e.g. lighttpd+mod_proxy) when the wiki is accessible by the whole wild net. In any other case it's not very important to remember the remote address of every user changing a page.