[pmwiki-users] How good (and usefull) is AI at writing basic (or not so basic) PmWiki code ?
Simon
nzskiwi at gmail.com
Sat May 24 03:21:46 PDT 2025
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 <languefrancaise at gmail.com> 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
> pmwiki-users at pmichaud.com
> http://www.pmichaud.com/mailman/listinfo/pmwiki-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pmichaud.com/pipermail/pmwiki-users/attachments/20250524/7a20995a/attachment.html>
More information about the pmwiki-users
mailing list