Pressbooks URL re-write with javascript

I supported the creation of a PressBooks OER textbook at VCU. It’s now getting published as part of a VIVA grant. As part of that, the book is imported into the central VIVA PressBooks site. They reached out to me indicating that the image links for WP media links were failing on the VIVA site. […]

Read More… from Pressbooks URL re-write with javascript

Revisiting Minimal WordPress

I’ve blogged a number of times over the years about minimizing the complexity that’s exposed in WordPress’s dashboard. I’ve done that in a couple different ways. The Gravity Forms-driven front end where you avoid WP’s dashboard entirely is one path. The other way was to just remove stuff that’s like irrelevant to different groups. I […]

Read More… from Revisiting Minimal WordPress

Dabbling with the Mastodon API

I’ve been meaning to get all the stuff that used to be automated to Twitter to work with Mastodon. I took about 15 minutes1 after reading a Mastodon-related post from Alan to mess around and see what I could figure out. Now I’ve got 15 minutes to write it down. Consider that half an hour […]

Read More… from Dabbling with the Mastodon API

Request this workshop

I’m working on a DLINQ website and I’m recycling1 ideas I liked from the old ALT Lab website days.2 This one is about having a list of workshops that we normally offer and making it easy for people to request them. My goal is to try to meet people’s needs for workshops and make what […]

Read More… from Request this workshop

WordPress and ACF as an HTML generator for Canvas Catalog

I’ve written before about trying to figure out some decent ways to customize Canvas Catalog. It’s not a straightforward path. I put together a mix of HTML and CSS on top of the basic bootstrap stuff that Catalog comes with. Unfortunately, that meant I was a choke point in creating new course listings. While we’re […]

Read More… from WordPress and ACF as an HTML generator for Canvas Catalog

Multiple Regex Expressions in a Sublime Snippet

I still use Sublime when I’m not using VS Code. This isn’t the best idea but I do it anyway. One of the things I like about both programs is being able to create little shortcuts to create code I write a lot. It speeds things up and makes me more consistent. Both programs let […]

Read More… from Multiple Regex Expressions in a Sublime Snippet

Format paragraphs based on internal text

As part of the AI Detox, people are cutting and pasting AI/Human conversations from a little font-end chatbot I made with the ChatGPT 4 API. The responses are just in rich text for downloading/saving. The conversations look something like this. The “speaker” is automatically prepended.1 AI: Some weird sentence. Human: Some response. AI: I don’t […]

Read More… from Format paragraphs based on internal text

Customizing the text in Canvas Catalog enrollment buttons

As usual, just knocking out the hit titles! Canvas Catalog just doesn’t have much in terms of options. That’s been tricky for us. We do a number of odd things. We’re getting around this so far by using the ability to put custom javascript at the catalog or sub-catalog level. It’s not what I dream […]

Read More… from Customizing the text in Canvas Catalog enrollment buttons

OpenAI API persona builder example

This takes the previous persona builder and shows it working with the OpenAI LTI. I’ve spent about 50 cents in testing so far over three days. That’s using the ChatGPT 4 model. Pricing is based on tokens which loosely equate to computing cycles. There are different rates for different models. I think this would be […]

Read More… from OpenAI API persona builder example

Javascript voice to text and text to voice

I took some of the Mozilla example code and tweaked it a tiny bit. Pretty crazy what you can do now with voice in the browser. The example below should let you record you voice to text and then have it speak that text back to you. See the Pen speech stuff by Tom (@twwoodward) […]

Read More… from Javascript voice to text and text to voice