mradcliffe → credited ultimike → .
mradcliffe → credited ultimike → .
ultimike → made their first commit to this issue’s fork.
ultimike → created an issue.
@camoa and I have information from @horncologne and @flux423 that needs to be synthesized and added here.
-mike
ultimike → created an issue.
ultimike → created an issue.
I'm changing the title of this issue so that we have separate issues for best practices documentation for employers and employees (IXPs.)
-mike
ultimike → created an issue.
Maybe we want to build out the IXP home and sub-pages from https://www.drupal.org/ixp → ?
Regardless, IMHO, the near-term goal is to determine a hierarchy of pages that we'll need for launch. How about:
https://www.drupal.org/ixp →
- main page that includes overview, summary of requirements, and links to sub-pages
https://www.drupal.org/ixp/employer-requirements →
- employer requirements for contribution credit
https://www.drupal.org/ixp/employee-requirements →
- who can apply for IXP positions
https://www.drupal.org/ixp/case-studies →
- see
📌
Collect case studies from existing programs
Active
https://www.drupal.org/ixp/best-practices-employers →
- see
📌
Develop IXP Best Practices Documentation
Active
https://www.drupal.org/ixp/best-practices-employees →
Much of the information for the main page and two requirements pages can come from 🌱 IXP Phase 2 proposed process Active
-mike
I think this is a duplicate of 📌 Develop IXP Best Practices Documentation Active - marking as such.
-mike
@chrisck - thanks for the kind words.
@swirt and I spoke at Florida DrupalCamp and he told me about his idea about how agencies who work on government projects might be able to hire IXPs outside of a big contract by utilizing the "contribute first" idea ( more info 📌 Develop IXP Best Practices Documentation Active .)
I absolutely encourage this discussion to continue, but at this point in time, I'm focused on what can we do in the short term to get the IXP program launched.
I think @swirt's idea should be part of the " IXP Best Practices 📌 Develop IXP Best Practices Documentation Active " for hiring organizations documentation. @swirt and/or @chrisck - would one/both of you be willing to do that?
-mike
Should we split this issue into two issues, one for hiring organizations and one for the IXP themselves? (I think so.)
-mike
mradcliffe → credited ultimike → .
Screenshots added.
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
@nicxvan - just to clarify, are you saying that all that is currently needed is a before-and-after screenshot (and perhaps some better information in the issue template)?
-mike
I'm aware of the AI Image Alt Text module, but this issue can also be considered a bug because if the prompt used to generate the image is longer than 255 characters, then an error occurs because the alt text field can't handle that.
-mike
@nicxvan, @cilefen,
Wow - thanks so much for hopping on this so quickly!
Some background on this request: each year at Florida DrupalCamp, during lightning talks, I share my list of "Drupal grievances" from the previous 12 months. The lack of the "Status Report" link was one of my original grievances a few years ago. At the time, I found a different core issue (which I have been unable to find again) that mentioned this, but its scope was bigger and never went anywhere.
Fast-forward to a few days ago, and I decided that this would not only make a good item for my "grievance rewind" for this year's lightning talk, but also a good issue to tackle (and possibly mentor someone new on) for Florida Drupal Camp's contribution day. Imagine my surprise (and joy!) when I opened this issue a few minutes ago to see the MR!
Hopefully, the narrow scope of this issue will allow this MR to be merged.
Marking as RTBC.
-mike
ultimike → created an issue.
ultimike → created an issue.
nicxvan → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
volkswagenchick → credited ultimike → .
I've just updated this fork with the following changes:
- Changed the name of the new flavor to "Markdown Smörgåsbord"
- Added a new
hook_markdown_easy_environment_modify()
that will allow folks to add additional extensions. I also added a supporting test. - (scope creep alert!) While working on the new hook, I discovered that the way I implemented
hook_markdown_easy_config_modify()
was bad. So very bad (because it would force the developer to recreate the entire converter - including the extensions - in the hook's implementation.) So, I changed the hook to fire a bit earlier (and this is the breaking part) I changed its input parameter from the$converter
to just the$config
array. This is a breaking change (so sorry!) for anyone who has already implemented this hook. But, the code is much better for the long haul now. Once this is merged, I will update the documentation (I have already updated the README in this issue fork.)
I'm going to let this sit for a week or so for feedback before merging. Will dance for feedback.
-mike
Another couple of ideas:
- Markdown Smörgåsbord
- Markdown Extras
After much discussion and difficulty in (my) figuring out the correct spelling, I'm going to go with "Markdown Smörgåsbord".
-mike
Heh - I think the discussion here has outgrown the title of the issue 😂
Anyway, @kreynen, your hierarchy makes sense.
-mike
@pameeela - thanks for the quick response. I understand the reasoning, but for some reason, something doesn't sit right with me. I think that if I put myself in the shoes of someone new to Drupal, and I click on something that indicates I'm going to see some 'add-ons' and then I arrive at the page where I don't see that word, it might be disorienting.
Anyway, I totally get it from the fact that things are moving fast, and there's bound to be some inconsistencies as well as some additional evolution. From a teaching/learning standpoint, I find great value in consistency.
thanks,
-mike
ultimike → created an issue.
Possible new flavor names suggested by DrupalEasy alumni:
- Markdown Goulash
- Markie Markdown and the Funky Bunch
- Markdown Loaded
- Markdown Madness
We also discussed the possibility of adding additional extensions like Table of Contents, but the concern is that they're always on, and not enable-able (or disable-able) on a per entity basis.
-mike
Ahhh - never mind. I just figured it out! It works as expected.
It was my misunderstanding. The "Require paragraphs to be added inside a layout" option means that non-layout paragraph types have to be placed inside a layout paragraph type...
-mike
ultimike → created an issue.
As I mentioned in my previous comment, I didn't want to go down the road of adding additional configuration to the Markdown Easy so I decided to remove the Footnotes extension option and add a new "Markdownpalooza" flavor that includes both the Footnotes extension as well as the Description lists extension. (Full list of all possible extensions provided by the CommonMark library this module is already using.)
I believe that adding this functionality this way keeps my mission of this module intact: to be easy-to-use and easy-to-maintain.
Summarizing the three available flavors:
- Existing flavor "Standard Markdown" is comprised of only the CommonMarkCoreExtension.
- Existing flavor "GitHub-flavored Markdown" is comprised of the GithubFlavoredMarkdownExtension which is the same as CommonMarkCoreExtension plus the following extensions: Autolinks, Disallowed Raw HTML, Strikethrough, Tables, and Task Lists.
- New flavor "Markdownpalooza" is comprised of GithubFlavoredMarkdownExtension plus the Description list extension and the Footnotes extension.
Some additional thoughts:
- I am not against adding addition extensions to Markdownpalooza, but after going through the list of available extensions, I didn't see much value in any of the other available extensions.
- I'm not 100% in love with the name Markdownpalooza, and am open to suggestions. My only criteria is that I'd like a name that is a bit fun.
Additional changes in this MR:
- I added the relevant Footnotes and Description list HTML tags to the default configuration of the Markdown text format that is installed with this module.
- I added test support for the new Markdownpalooza extensions.
- I renamed the "Important" information when configuring the Markdown Easy text filter to "Tips" and added some additional information.
- I added a new hook_markdown_easy_environment_modify that will allow folks to add additional extensions via a small custom module. Once this MR is merged, I'll update https://www.drupal.org/docs/extending-drupal/contributed-modules/contrib... → with an example of how to use it. I'm happy to provide issue credit for anyone who wants to help me with this.
- As this is a fairly significant addition to the module, once merged, I'll be releasing a 1.1.0 version.
- Similarly, once 1.1.0 is released, I'll be reviewing and updating all of the documentation (including the README.md). I'm happy to provide issue credit for anyone who wants to help me with this.
Thoughts? Feedback?
thanks,
-mike
I talked this over with some folks during DrupalEasy Office Hours and I'm leaning towards doing the following:
- Remove the option to enable Footnotes.
- Add (at least) a new "flavor", calling it something like "GitHub flavored+" and including Footnotes and maybe a few other commonly-used extensions (I'm open to suggestions.) If we go this route, then I may want to consider automatically updating the "Limit allowed HTML" config based on the flavor selected.
The goal is to both keep the codebase of this module as simple as possible (for easy updates) as well as keeping its implementation as easy as possible for end users.
Thoughts?
-mike
volkswagenchick → credited ultimike → .
It would be really helpful if we could decide on the following for Atlanta, so that I can work with the DA in getting everything we need/want finalized:
- A proposed schedule of mentoring events during DrupalCon. This includes first-time contributor workshops, mentoring workshops, issue queue triage workshop, mentor’s BoF. To this end, I am able to secure us a dedicated space for these workshops, including during contribution day (so that we can separate the first-time contributor’s workshop from the mentoring area.) BUT, to make any of this happen, I need a proposed/tentative schedule by January 1.
- The name of the main contact on the mentoring team for marketing/communications. This person will also be asked to help work with DrupalCon marketing folks in writing and designing marketing materials (including a half-page handout for the booth.) The DA is willing to help us get the word out, but ideally, there will be a single point-of-contact.
- I think we should identify a “mentor recruitment” lead. I have some ideas about how this could be really useful.
Also see my comment in Slack in the #mentoring-leads channel: https://drupal.slack.com/archives/G63JLJK7G/p1732311521966999?thread_ts=...
I hit this error while installing RC2 using Safari 18.1.
I tried doing a ddev drush cr
as in comment 27 above, and I had the same output and the same result (the page refreshed fine.) Odd.
-mike
Workaround worked for me as well.
-mike
I've update the MR to address the things I noted above as well as I improved one of the functional tests to actually test the footnote extension.
I'm still on the fence about whether or not the Footnotes extension should be enabled by default or not seeing how there are additional tags that have been added to the "Limit allowed HTML tags and correct faulty HTML" configuration to support footnotes.
Regardless, once this is merged, I'll need to remember to add something to the release notes letting folks know that if they're upgrading and enable the Footnotes extension, they'll need to add the following to the "Limit allowed HTML tags and correct faulty HTML" config: id
to the existing <li>
as well as <sup id>
.
I am amenable to adding additional extensions, but I really want to keep this module dead-simple to use - perhaps that means enabling and configuring extensions by default without giving users the option to enable/disable them in the filter's settings form.
Thoughts?
-mike
ultimike → made their first commit to this issue’s fork.
I have to agree with @bramdriesen on all of his comments. I would like to see this MR cleaned up a bit and a test added before considering this change (especially because this is a bit of an edge case and a workaround exists.)
-mike
mradcliffe → credited ultimike → .
mradcliffe → credited ultimike → .
mradcliffe → credited ultimike → .
lostcarpark → credited ultimike → .
teknorah → credited ultimike → .
ultimike → created an issue. See original summary → .
So is the plan that both drupal_cms_ai
and drupal_cms_analytics
will be apply-able in Drupal CMS 1.0 only via the command line? Or is that TBD?
-mike
drupal_cms_search
is a weird one because it appears in the drupal_cms_starter
recipe's composer.json file but not in the recipe.yml file - maybe this is an oversight?
I agree that drupal_cms_ai
, drupal_cms_analytics
, and drupal_cms_multilingual
should all be available in Project Browser.
-mike
Does #8 work with the latest version of this module?
The current version of DDEV includes npm 8.19.4 - it would be great if this module supported this version of npm out-of-the-box, and it would make contributing to this module **much** easier.
Or - better yet - close this issue in lieu of 🐛 Switch from deprecated Node Sass to Dart Sass compiler and change minimum node version to 16.0 and later in the Bootstrap Styles module Active
-mike
This MR worked for me as well with Drupal core 10.3.9, Group module 3.3.0, and version 2.1.1 of this module.
-mike
johnpicozzi → credited ultimike → .
One other thought on this - as things currently stand, Project Browser will only work with recipes that are installed with Composer. If you download/create a recipe into a project, Project Browser won't find it (unless you've previously used Composer to require an additional recipe to the same directory.)
Regarding
When I do a composer require somevendor/somerecipe (where the project's composer.json has "type": "drupal-recipe", where is the Composer configuration that installs this dependency in the project root's "recipes" directory? (using a Drupal 11.0.7 site based on the drupal/recommended-project Composer template.) This is a bit of a mystery.
Credit to @ctrladel for figuring out that recent versions of composer/installers has this gem:
https://github.com/composer/installers/blob/main/src/Composer/Installers/DrupalInstaller.php
Mystery solved!
-mike
Doh! Never mind - I think the plugin already does this!
In Drupal 10 and and 11, it searches the project-root's "recipes/" directory.
From a code comment:
// The recipe system requires that all non-core recipes be located next to each
// other, in the same directory.
So, no "custom" or "contrib" directories allowed.
When I do a composer require somevendor/somerecipe
(where the project's composer.json has "type": "drupal-recipe", where is the Composer configuration that installs this dependency in the project root's "recipes" directory? (using a Drupal 11.0.7 site based on the drupal/recommended-project Composer template.) This is a bit of a mystery.
Sidenote: I have noticed that the 11.x drupal/recommended-project Composer template includes "recipes/{$name}": ["type:drupal-recipe"]
.
Finally, in the Project Browser recipes plugin, there is this bit of code that uses information from Composer to figure out which directories Project Browser searches for recipes:
// If any recipes have been installed by Composer, also search there. The
// recipe system requires that all non-core recipes be located next to each
// other, in the same directory.
$contrib_recipe_names = InstalledVersions::getInstalledPackagesByType(Recipe::COMPOSER_PROJECT_TYPE);
if ($contrib_recipe_names) {
$path = InstalledVersions::getInstallPath($contrib_recipe_names[0]);
$path = $this->fileSystem->realpath($path);
$search_in[] = dirname($path);
}
Bottom line - nothing to see here, closing this issue, leaving this information for those that are curious.
-mike
After discussions with one of the Recipe leads, it was determined that we should be including both /project-root/recipes
and /project-root/web/recipes
.
I've updated the issue summary.
-mike
ultimike → created an issue.
johnpicozzi → credited ultimike → .
I completely agree with @damienmckenna, @herved, @loopy1492, and others - removing update hooks is a bad idea.
-mike
lostcarpark → credited ultimike → .
I think I'm in a similar situation as the OP (@fessouma) where I can't figure out what I'm missing. Here's some details:
- I just pulled the latest -dev.
- I have "Stream" unchecked in the "AI Chatbot" block configuration.
- I can put my chatbox prompt in the "AI Vector DB Explorer" and get 3 results that are above my context threshold (0.1).
- I am only getting the generic answers from the chatbot ("I'm sorry, I can not find a database to look this up in.")
- Looking at the logs, after I use the chatbot, I only see a call to OpenAI to the "gpt-4o" modul - I do not see a call to the "text-embedding-3-small" model which makes me think that chatbox prompt is not getting embeddings-ized in order for the RAG search of my local Milvus database to happen. I should always see an initial call to the "text-embedding-3-small" model for the initial prompt, right?
In my head (which may be incorrect), I'm thinking that the following things should happen:
- The chatbox prompt gets embedding-ized.
- The local Milvus database is searched using the embedding-ized chatbox prompt.
- The results of the previous step are added to the prompt instructions for the gpt-4o call.
So, when I look in the AI Logs, I am expecting to see the "Extra data" section contain the prompt instructions text along with results from the local RAG search. Am I not thinking about this the right way?
thanks,
-mike
Allowing subfolders could lead to naming collisions as you could have a content_type_page in multiple sub-folders and which one would a recipe that depends on it apply?
@thejimbirch - ah, makes sense. Thanks for the explanation.
-mike
Big +1 to the the 3 type options proposed (Foundational, Kit, and Site).
When I look at the project root for Drupal CMS, or within any module that contains multiple recipes, I think it would be helpful if there was a directory structure that mirrors these types. Off the top of my head:
/recipes/foundational/...
/recipes/kit/...
/recipes/site/..
This way, a developer would be able to quickly identify which was which without inspecting their recipe.yml file.
As for a second classification type, I don't have a strong opinion other than a standard naming convention could go a long way in providing this type of classification for foundational recipes.
-mike
@alfthecat - Thanks for the kind words!
Also - I loved your TV show when I was growing up!
When the setFile()
method is used to specify the location of the batch functions, it must be called before setFinishCallback()
or the finish callback will not be found:
$batch_builder = (new BatchBuilder())
->setTitle($this->t('Processing Batch'))
->setFile('/my_module.batch.inc')
->setFinishCallback('my_finish_callback_function')
->setInitMessage($this->t('Batch is starting'))
->setProgressMessage($this->t('Processed @current out of @total.'))
->setErrorMessage($this->t('Batch has encountered an error.'));
I think this is fine - if others feel a need for a DESC option, then a new issue can be opened. In my case, simpler is better!
thanks,
-mike
ultimike → created an issue.
I can confirm that in my case, a CSV file with 210,000+ rows and 17 columns loaded and performed well on my local with Drupal 10 and a standard DDEV configuration.
-mike
liberatr → credited ultimike → .