Re: How good (and usefull) is AI at writing basic (or not so basic) PmWiki code ?

Simon <[email protected]> Sat, 24 May 2025 22:21:46 +1200
Newsgroups gmane.comp.web.wiki.pmwiki.user
Message-ID <CAFUSNWNuG0AZqPf4azQpK0T_7JT39v=T4RYU3G_GvZTVfvAbKg@mail.gmail.com>
I use https://www.pmwiki.org/wiki/Cookbook/Grep
I find it works very well, e.g. see
https://ttc.org.nz/pmwiki/pmwiki.php/Site.TemplateFixtureCardInclude

On Wed, 14 May 2025 at 00:57, ABClf <[email protected]> wrote:

> I was looking for something easy (I guess) which might be useful : get a
> markup for extracting a line in some Group.MyPage according to regex
> pattern.
>
> I have asked ChatGPT (free version) to do the job ;
> first attempt didn't work, but the scenario was credible (markup will be
> like : (:ExtractLine Profil.JeanDoe "^Nom:" :))
>
> First result given was :
>
> <?php if (!defined('PmWiki')) exit();
>
> Markup('ExtractLine', 'directives',
>   '/\\(:ExtractLine\\s+(\\S+)\\s+([\'"]).+?\\2\\s*:\\)/e',
>   "ExtractLineFromPage('$1', PSS('$2'))");
>
> function ExtractLineFromPage($pagename, $pattern) {
>     $page = ReadPage($pagename, READPAGE_CURRENT);
>     if (!$page) return "Page non trouvée";
>
>     $text = $page['text'];
>     $lines = explode("\n", $text);
>
>     foreach ($lines as $line) {
>         if (preg_match($pattern, $line)) {
>             return Keep($line);  // Keep() évite l'interprétation wiki
>         }
>     }
>
> Saved as a cookbook and called in config, I am given an error by PmWiki
> internal debugging code (message : code obsolete).
> Ok. I copy the error message to ChatGPT and suggest him a link to
> PmWiki/CustomMarkup.
>
> One second later, I am given an updated code which works :
>
> <?php if (!defined('PmWiki')) exit();
>
> Markup('ExtractLine', 'directives',
>   '/\\(:ExtractLine\\s+(\\S+)\\s+([\'"])(.+?)\\2\\s*:\\)/',
>   'ExtractLineMarkup');
>
> function ExtractLineMarkup($m) {
>     $targetPage = $m[1];
>     $pattern = $m[3]; // C'est le motif entre guillemets
>
>     return ExtractLineFromPage($targetPage, $pattern);
> }
>
> function ExtractLineFromPage($pagename, $pattern) {
>     $page = ReadPage($pagename, READPAGE_CURRENT);
>     if (!$page) return "Page non trouvée";
>
>     $text = $page['text'];
>     $lines = explode("\n", $text);
>
>     foreach ($lines as $line) {
>         if (@preg_match("/$pattern/", $line)) {
>             return Keep($line);  // Empêche l'interprétation du markup
>         }
>     }
>
>     return "Aucune ligne ne correspond au motif.";
> }
>
> This code gets only the first line meeting the pattern.
> Just ask if you need all the lines and wait one more second :
>
> <?php if (!defined('PmWiki')) exit();
>
> Markup('ExtractLine', 'directives',
>   '/\\(:ExtractLine\\s+(\\S+)\\s+([\'"])(.+?)\\2\\s*:\\)/',
>   'ExtractLineMarkup');
>
> function ExtractLineMarkup($m) {
>     $targetPage = $m[1];
>     $pattern = $m[3]; // Motif brut sans délimiteurs
>     return ExtractAllMatchingLines($targetPage, $pattern);
> }
>
> function ExtractAllMatchingLines($pagename, $pattern) {
>     $page = ReadPage($pagename, READPAGE_CURRENT);
>     if (!$page) return "Page non trouvée";
>
>     $text = $page['text'];
>     $lines = explode("\n", $text);
>     $matches = [];
>
>     foreach ($lines as $line) {
>         if (@preg_match("/$pattern/", $line)) {
>             $matches[] = Keep($line);  // Empêche le parsing wiki
>         }
>     }
>
>     if (count($matches) > 0) {
>         return implode("<br />\n", $matches);
>     } else {
>         return "Aucune ligne ne correspond au motif.";
>     }
> }
>
> Might be easy for smart people, but I'm still so admirative. For the
> result I get so quickly, and for the easy way to get it, fluently, in 3, 4
> "conversational" steps. That's not something I would have expected 1 year
> ago. One more second and I believe you get the extracted line cleaned up
> from PmWiki markup if you need it.
>
> My question is two open questions :
>
> 1. is the Ai generated code well done ? Ok, it works, but is it well
> written ? secure enough ? doesn't it forget something important ? efficient
> enough for speed ? (I believe it is, because here it is something very
> basic).
> 2. do you play with AI tools like ChapGPT, Deepseek, Mistral for improving
> your PmWiki ? What do you do (can we do something else than markups and
> recipes ?) Does it work fine for you ? Which AI do you find is the best for
> this kind of work ?
>
> Gilles.
> _______________________________________________
> pmwiki-users mailing list
> [email protected]
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
>

_______________________________________________
pmwiki-users mailing list
[email protected]
http://www.pmichaud.com/mailman/listinfo/pmwiki-users