]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/latex.mdwn
web commit by tschwinge: News about git / distributed infrastructure.
[git.ikiwiki.info.git] / doc / todo / latex.mdwn
index 08a9cd12efec5fee9e6b922e55fd52eb173d6959..17df6fc52fcb7bd2624b5630c442f726ccf68be5 100644 (file)
@@ -47,8 +47,119 @@ So I think I'm inside my own timetable. :)
 ps: Since I found nothere the possibility to upload an file, here is an link to my page where you can have a look. Comments are very welcome ;-)
 https://www.der-winnie.de/~winnie/gsoc07/tex.pm
 
+You'll find an demo site here:
+https://www.der-winnie.de/wiki/opensource/gsoc2007/
+I'll add some more complex formulas over the days. But this is basically only pure latex. ;-)
+
 -- Patrick Winnertz
 
+> Looks like you're very well on schedule.
+
+> But I wonder: Do you have any plans to work on the latex to html side of
+> things too? This page kinda combines both uses of latex; creating gifs
+> for formulas etc, and creating html. Dreamland already has a latex2html
+> using plugin submitted above, but it still needs some work, and
+> particularly, needs the same input validation stuff. And then there's the
+> idea of using html2latex, to convert an ikiwiki site into a book. Any
+> plans to work on that too? I guess I'm not sure what the scope is of what
+> you plan to do as part of GSoC.
+
+>> Yes I plan to write an html -> tex (or pdf) plugin as well. But I think it is better to work first on the first one and complete it and then work and complete the second one. If it is in the scope of GSoC i don't know, but I'll write it since it is fun to write on an Opensource project ;-)
+
+>> For latex-> html:
+>> I have the problem that I don't really see the sense to create html code (this means text or charts) from latex code. But if you like I can also add this variant to create html code. In my eyes it is much more important that it is possible to have complex chemical/physical & math formulas on the website without the need to use extern programs. (and upload the pictures manually).
+
+>>> Well, I suppose someone might just like latex and want to use it as the
+>>> markup for their wiki, rather than learning markdown. I guess Midnight
+>>> wanted it enough to write his plugin. But the use case is not too
+>>> compelling to me either, honestly. --[[Joey]]
+
+### code review
+
+> The main problem I see with the code is that you seem to unnecessarily create a dummy div tag
+> in preprocess, and then in format you call create(), which generates an img tag. So, why not 
+> just create the img tag in preprocess?
+
+>> Mh okay, I'll improve this. 
+
+Fixed
+
+> Another problem: Looks like if latex fails to create the image, the user won't be shown any
+> of its error message, but just "failed to generate image from code". I suspect that in this 
+> case being able to see the error message would be important.
+
+>> Yes, that's true. It would be _very_ hard to provide the user the output of latex since this is really very much. For an simple formula as \frac{1}{2} this could be 2 printed out.
+
+>>> YM 2 printed pages? Yes, I'm familar with latex's insane errors. :-)
+>>> However, IMHO, it's worth considering this and doing something. Perhaps
+>>> put the error inside some kind of box in the html so it's delimited
+>>> from the rest of the page. (Actually, ikiwiki preprocessor directives in
+>>> general could mark up their errors better.)
+
+Okay, I'll provide the log as an link in the wiki. But there should be a kind of mechanism how they can be removed. This could lead to an DOS (create via a bot so much nonsense code that the disk is full.)
+
+Fixed, the log is now provided if latex will fail.
+
+> The url handling could stand to be improved. Currently it uses $config{url}, so it depends on that being set. Some ikiwiki builds don't have an url set. The thing to do is to use urlto(), to generate a nice relative url from the page to the image. 
+
+>> Mh... i choose one single dir explizitly since if you use on several pages the same formula  this would really improve the time to generate the formulas and it would waste extra space if you store every formula 3-4 times. But if you really like I'll change this behaviour. 
+
+>>> No, that makes sense! (My comments about $config{url} still stand
+>>> though.
+
+Yes of course, I'll improve the url handling. My comment was only about the several folder ;-)
+
+Fixed. Now I use urlto and will_render.
+
+> Another (minor) problem with the url handling is that you put all the images in a "teximages" directory in the toplevel of the wiki. I think it would be better to put each image in the subdirectory for the page that created it. See how the `img` and `sparkline` plugins handle this.
+
+> It looks like if the tempdir already exists, tempdir() will croak(), thus crashing ikiwiki. It would be good to catch a failure there and fail more gracefully.
+
+>> Okay, I'll improve this behaviour. Maybe: if tempdir croak rerun it to get another not existing dir? (But only x times so that this is no endless loop, with x maybe = 3). 
+>> Then it would not be necessary to inform the user about not generating the image. 
+
+>>> Or just propigate up an error message. If it's failing, someone is
+>>> probably trying to DOS ikiwiki or something. :-)
+
+Fixed. I now use eval { create_tmp } and then:  if ($?) { $returncode = 0 } else { save .tex file ... } ...
+
+
+> I'm not sure why you're sanitising the PATH before calling latex. This could be problimatic on systems where latex is not in /bin or /usr/bin
+
+>> Okay what do you suggest to use as PATH? 
+>> I'll have to change the default settings, since we ikiwiki runs in taint mode. (which is good ;-))
+
+>>> But, ikiwiki already sanitises path and deletes the IFS and CDPATH etc.
+>>> See ikiwiki.in.
+
+Fixed. I'll removed these two lines completly.
+
+-----
+Okay here an short timetable how I want to proceed further:
+
+* Until weekend (21-22. July) I'll try to fix all errors above. (done)
+* From 22.July until 29. July I'll try to set up a first security check
+  My plans are two parts of a security check:
+    * One with an array of blacklisted regular expression. (This would blacklist all the well known and easy to fetch things like \include {/path/to/something} and things like closing the math formula environment ($$). (done)
+    * the second step will be based on Tom::latex, which will help to parse and get a tree view of the code.
+
+Okay what do you think of this procedure?
+
+> --[[Joey]]
+
+>> -- [[PatrickWinnertz]]
+
 ----
 
+> It would be nice if it would output image tags with style="height:1em;" so that the formulas scale
+> with the rest of the text if you change the font size in your browser (ctrl + +/-).
+
+
+Thanks for the comment.. is fixed. 
+Mh... not really fixed :S I added it into the return but it is somehow ignored. I'll figure out why.
+
+-----
+
 [[tag soc]]
+
+[[tag wishlist]]