Thursday, July 31, 2008, 6:39:40 PM, Alessandro Orsi wrote: > So, what's my question? Well, I would like (:title title with spaces > and apostrophes and anything else I could fancy:) to be automatically > added when I create a new page, better if from a page template, so I > don't have to type the expression two times or copy paste. > > Now I have to: > > 1. create the link in a page: > > [[l'aquila]] > > 2. Click. Page "Laquila" is created, then add: > > (:title l'aquila:)
> I would like to skip point two. Is there any variable that stores > "l'aquila" before it is converted to "Laquila" that I can use in a > page template or somewhere else to automate the process? No. Page names are generated by the function MakePageName. > I know it can probably be done through a form, and I had a look at the > recipe NewPageBoxPlus, but I'd like it to work also from free links (I > don't use WikiWords). Unfortunately using link markup you cannot insert the typed title into the new pag's (:title :) markup automatically. All you could do is specify a template page, which loads as the new page. So you can have a blank (:title :) markup, but you still need to fill it. See http://www.pmwiki.org/wiki/Cookbook/EditTemplates for this. A Fox form solution would insert it automatically. You could try Fox. http://www.pmwiki.org/wiki/Cookbook/Fox See http://www.pmwiki.org/wiki/Cookbook/FoxPageManagement example 2 > I also had a look at the recipe AlternateNamingScheme to make page > names a bit more readable, and I was wondering whether leaving > apostrophes in page names would break something. In Moinmoin, for > example, spaces are converted to underscores but apostrophes are left > untouched: > Moinmoin: > l'albero di natale => l'albero_di_natale > Pmwiki > l'albero di natale => LalberoDiNatale Apostrophes (single quotes) need to be removed, because PmWiki uses page names as file names and in the url. You could try and change the $MakePageNamePatterns array, which function MakePageName uses. Define it in config.php. For instance: $MakePageNamePatterns = array( "/[^$PageNameChars]+/" => ' ', # convert non pagename characters to space '/((^|[^-\\w])\\w)/e' => "strtoupper('$1')", # convert first character after space to Upper '/ /' => '_'); # convert spaces to underline this will convert l'albero di natale => L_Albero_Di_Natale Or try this: $MakePageNamePatterns = array( "/'/" => ' ', # convert single-quotes to space "/[^$PageNameChars]+/" => ' ', # convert everything else to space '/((^|[^-\\w])\\w)/e' => "strtoupper('$1')", '/ /' => ''); this will convert l'albero di natale => LAlberoDiNatale instead of stripping the single quote it gets converted into a space first, which has the effect that the following word will start with an Upper character. But this will also convert for instance a day's work => ADaySWork To avoid capitalisation of a single letter following a single quote and which in turn is followed by a space, one could use: $MakePageNamePatterns = array( "/'(\\w )/" => '$1', #strip single quote followed by single letter "/'/" => ' ', # convert single-quotes to space "/[^$PageNameChars]+/" => ' ', # convert everything else to space '/((^|[^-\\w])\\w)/e' => "strtoupper('$1')", '/ /' => ''); then you get l'albero di natale => LAlberoDiNatale a day's work => ADaysWork ~Hans _______________________________________________ pmwiki-users mailing list [email protected] http://www.pmichaud.com/mailman/listinfo/pmwiki-users
