[WM] How to automatically generate html files from all wmks in a dir

jlm17 at lucent.com jlm17 at lucent.com
Thu Feb 9 21:28:39 GMT 2006


Thanks for the help. From this I learned that I didn't have to do anything drastically different 
than my first approach below, but that I needed to use quotes around the variable in the values part:

<for name="page" values="${file_list}">

Darren Cole wrote:
> jlm17 at lucent.com,
> 
> The closest I have is setting a value is in a <for> loop to be used  in 
> a template called from the loop (i.e. <content  
> name=standard_template></content>).  I don't think this is what you  are 
> asking for, but maybe it will help.  At the end of the message  I'll 
> include the whole <for> to provide more context.
> 
>             <{set page_text="${${WebMake.OutName}.txt}" }>
> 
> I then can access page_text in my template by the normal $ {page_text}.  
> The WebMake.OutName is just accessing webmake variables  from within the 
> for loop so that I can get the whole file name and  put the file in 
> ${page_text}.  You should be able to "set_content  ($name, $value);" in 
> your perl code to set the value of $name (say  the string 
> "example_text") to $value.  You could then use $ {example_tex}t to get 
> at the $value.  I don't currently use this, but  I think I at least 
> tried it at some point (documentation for  set_content is of course at 
> <http://webmake.taint.org/doc/ PerlCodeLibrary.pm.html>).
> 
> I think you might also get the same effect by make a <for> loop  
> interate over your .wmk files.  Just make a '<contents>  
> src="file:wembmake_files/" format="text/wmk" name=".../.wmk"  
> listname="wmk_files"/>' before your <for> loop.  I'm not sure what  the 
> format= attribute should be, you'd have to look that up or  experiment.  
> Then define wemake_template and do whatever you want.  I  have done 
> something like this for a navigation bar that highlights  which page you 
> are currently on.  If you think this would help let me  know, and I'll 
> provide an example from my webmake file (though it  doesn't do the 
> webmake files, just text files).
> 
> Here is the full loop from my webmake file and the <contents> tag  that 
> sets no_nav_files list for the for loop.  ${standard_template}  is just 
> a template I defined using the <contents> tag.  It uses $ {page_text} to 
> get the text of the whole page, so that is why I to  the <{set ...}> stuff.
> 
> <contents src="file:no_nav/" format="text/et" name=".../*.txt"  
> listname="no_nav_files" />
> <!-- output for no_nav_files -->
> <for name="page" namesubst="s/.txt//" values="${no_nav_files}">
>     <out name="${page}" file="${page}.html">
>         <{set page_text="${${WebMake.OutName}.txt}" }>
>         ${standard_template}
>     </out>
> </for>
> 
> Hope this all helps.
> 
> Darren
> 
> On Feb 2, 2006, at 4:46 , jlm17 at lucent.com wrote:
> 
>> I am trying to have webmake automatically generate html files from  a 
>> dynamic list of .wmk files. I have a <for> loop, but I don't know  how 
>> to programatically set the values= attribute. I have tried  these two 
>> approaches:
>>
>>   <content name="file_list">
>>     <{perl
>>       @_=`ls -1 *.wmk`;
>>       chomp(@_);
>>       $_=join(' ', @_);
>>       s/\.wmk//g;
>>       $_;
>>     }>
>>   </content>
>>   <for name="page" values=${file_list}>
>>   ...
>>
>> and:
>>
>>
>>   <for name="page" values=<{perl
>>       @_=`ls -1 *.wmk`;
>>       chomp(@_);
>>       $_=join(' ', @_);
>>       s/\.wmk//g;
>>       $_;
>>       }>
>>       >
>>   ...
>>
>> The perl block gets a list of all of the *.wmk files in a  directory, 
>> concatenates them into one string separated by spaces,  and removes 
>> the '.wmk' suffix. Now I want to iterate over each  value and generate 
>> an html file. The documenation hints at being  able to set a variable 
>> and then using that in a <for>  directive,  but I have not found an 
>> example that shows the syntax.
>>
>> Thanks for any help in advance.
>> _______________________________________________
>> WebMake-Talk mailing list
>> WebMake-Talk at taint.org
>> http://webmake.taint.org/mailman/listinfo/webmake-talk
> 
> 
> _______________________________________________
> WebMake-Talk mailing list
> WebMake-Talk at taint.org
> http://webmake.taint.org/mailman/listinfo/webmake-talk


More information about the WebMake-Talk mailing list