Recently Updated Topics
Showing topics posted in for the last 7 days.
- Today
-
RobotsTxt β Manage robots.txt from the admin UI
bernhard replied to maximus's topic in Modules/Plugins
I think there is only one thing missing: a screenshot π -
We made the PR and let you and Claudia decide on how you want to handle a fallback. Also we renamed .agents to agents, so FTP transfer works reliably. It has the format I posted for templates/fields/roles/permissions. And it has various wrapper functions for things like creating pages, roles, install modules etc. These can live in various locations like site/migrate.php or inside a Foo module in Foo.migrate.php or the Foo.module.php itself or anywhere you call $rm->migrate(). It handles dependencies for migrations gracefully. Files it doesn't handle as far as I know. @Peter Knight has a module for page content creation with AI that he is working on. That one does rich text content and images, I think. Yes, that's very unfortunate indeed. I went with .agents because it's supposed to become the standard and many tools already support it. So I do the symlinking ritual until that is sorted out (if ever). Someone made a CLI for this at https://github.com/runkids/skillshare I haven't tried it yet, but looks pretty impressive.
-
Good morning @Stefanowitsch! Right now, this is possible for all images on a page using the page mode for prompts. I did a short screencast which shows what I mean. This way, you have to open each page, click 'Save + Alt-Text' (or whatever you want to call it), and move on to the next page. You could definitely create a script to process multiple pages at once, but this would require some refactoring of the module β I actually like this idea π prompt-ai-pagemode.mp4
-
Context Module - AI-Optimized Site Documentation with TOON Format
maximus replied to maximus's topic in Modules/Plugins
Yes, it's documented in the README under "Best Practices β Session Continuity" section! I've also just improved the AGENTS.md file to make it more prominent with a clear example prompt. The docs now show: At end of each coding session, use this prompt: Update prompts/project-summary.md with current project state. Follow the existing format in the file: - Be concise and factual - Use bullet points - Update in place (don't overwrite history) - Remove any duplication Save the file. The template file itself also has the rules embedded, so AI sees them every time it updates. This is in v1.3.0 which I'm releasing shortly with CLI support for AI agents. - Yesterday
-
I could swear that was playing at the gym today.
-
PlausibleAnalytics β Full-featured Plausible Analytics dashboard
bernhard replied to maximus's topic in Modules/Plugins
That would be really cool! On the other hand I had problems when using Plausible as data grew extremely large on a very small site over a very short period of time... So I'm not using it at the moment and went with the oldschool (and ugly) matomo... Your dashboard looks definitely a lot better, so I'm looking forward to seeing where you bring this π -
module HTMX for ProcessWire: Build reactive, state-aware components effortlessly
ukyo replied to ukyo's topic in Modules/Plugins
@BitPoet Thank you for info π I updated video - Last week
-
I have trouble following the instructions here. I have several virtual domains successfully installed on Apache Ubuntu, with index.php placeholder files. I want to install Processwire sites in each of them, each with their own config and database, and have all of them use the same /wire codebase in /domainone. /www/html/domainone/site (+ /wire) /www/html/domaintwo/site /www/html/domainthree/site etc. The 'how to install' instructions on the link talk about creating subdirectories off the web root, tmp directories, moving and renaming folders, having to come up with different names for the site folders, etc. It does not sound like what I am looking for. Is there a simpler way to get the structure described above? ChatGPT claimed I could just bootstrap the /wire folder into the other with one line and install normally, but that did not work of course.
-
AFAIK Incus is a community fork of LXD developed (partly) by same people. So not so new actually)
-
@gerritvanaaken @pideluxe Yes, it automatically takes over all mail sending. I've updated the module and added OAuth2 support, but I haven't tested Azure specifically. You can follow the instructions here: https://github.com/trk/WireMailPHPMailer#xoauth2-google-microsoft-yahoo-azure-support Please test it and let me know the results, or feel free to submit a PR if any fixes are needed!
-
Sorry about that @PWaddict - both versions should be fixed now.
-
Now when they're all pinged, we need to have something for them... Something to do or to write about... Maybe just say hello and share where they're at now...
-
Just created a new test project and added the module. One thing I noticed immediately was that in my DDEV environment I needed to prefix the commands in order to run them in the actual container. // non-DDEV environment php index.php --at-eval 'echo wire()->pages->count() . " pages\n";' // DDEV environment ddev exec php index.php --at-eval 'echo wire()->pages->count() . " pages\n";'
-
My experience is the opposite. It's especially helpful with things I don't know and start to learn π But yeah, a basic understanding of web development definitely helps...
-
Thanks, great suggestions. Being still kind of new to this, I've found myself overwhelmed by all agents tools and options. So having Claude code as the base is what I feel helped me to finally get into this stuff. It's like my key into this world. And I think it's working so well right now that I'm not concerned about whether a file is named Claude or agents, but it's good to know about for sure. If we start adding this type of file to the core then no doubt we'd want it to be an agents file, so that a broader audience can benefit from it. At the moment I'm loving the commit messages, claude attributions and GitHub replies. Feels like I have a coworker working with me at my computer all day now, which is something I've never had. but if it gets to be too much it's definitely helpful to know that this stuff is configurable. New PW AI updates coming tomorrow too.
-
After taking a look at the code, I guess the best approach would be to go with a custom validation rule, because there is so much going on inside the isValid() function that must be checked in the setErrorMessageToField() method too. Can you explain which kind of validation you need in this case. Maybe I can help you to create the custom rule. You can also send me a PM with the code you have so far.
-
InviteAccess β restrict staging site access with invite codes
howdytom replied to maximus's topic in Modules/Plugins
Thank you. It is a great module and works perfectly. Sometimes it would be cool to password protect individual pages instead of locking the complete sites. It just the opposite use case.- 1 reply
-
- 1
-
-
Hey everyone, on a recent client project we had to deal with a large number of Markdown files that needed to end up as regular HTML content on ProcessWire pages. Converting them manually or piping them through external tools wasn't an option β too many files, too tedious, and the content had to be stored as actual HTML in rich textfields, not just formatted at runtime. So we built a small module that handles this directly inside ProcessWire. How it works The module creates a file upload field (md_import_files) and a Repeater field (md_import_items) with a standard title field and a richtext body field (md_import_body) inside. The body field automatically uses TinyMCE if installed, otherwise CKEditor. You add both fields (md_import_files,md_import_items) to any template, upload your .md files, hit save β each file gets converted to HTML via PW's core TextformatterMarkdownExtra and stored as a separate Repeater item. The source filename goes into the items title, processed files are removed from the upload automatically. Template output The Repeater items are regular PW pages, so output is straightforward: foreach ($page->md_import_items as $item) { echo "<section>"; echo "<h2>{$item->title}</h2>"; echo "<div>{$item->md_import_body}</div>"; echo "</section>"; } Tag mappings One thing we needed right away: control over how certain Markdown elements end up in HTML. For example, #headings in Markdown become <h1> β but on most websites <h1> is reserved for the page title. The module has a simple config (Modules β Configure β Markdown Importer) where you define tag mappings, one per line: h1:h2 h2:h3 strong:b blockquote:aside hr:br This performs a simple 1:1 tag replacement after conversion, preserving all attributes. Works well for standalone or equivalent elements like headings, inline formatting, blockquotes, or void elements like hr:br. Note that it doesn't handle nested structures β mapping table:ul for example would only replace the outer <table> tag while leaving thead, tr, td etc. untouched. Requirements ProcessWire 3.0.0+ FieldtypeRepeater (core) TextformatterMarkdownExtra (core) GitHub: github.com/frameless-at/MarkdownImporter Modules Directory: https://processwire.com/modules/markdown-importer/ Happy to hear if anyone finds this useful or has suggestions for improvements. Cheers, Mike
-
- 4
-