Skip to main content
April 21, 2025

LearningDITA: DITA-based structured learning content in action

Are you considering a structured approach to authoring and distributing your learning content? We built LearningDITA.com as an example of what DITA and structured learning content can do! In this episode, Sarah O’Keefe and Allison Beatty unpack the architecture of LearningDITA to provide a pattern for other learning content initiatives.

Because we used DITA XML for the content instead of the actual authoring in Moodle, we actually saved a lot of pain for ourselves. With Moodle, the name of the game is low-code/no-code. They want you to manually build out these courses, but we wanted to automate that for obvious reasons. SCORM allowed us to do that by having a transform that would take our DITA XML, put it in SCORM, and then we just upload the SCORM package to Moodle and don’t have to do all the painful things of, you know, “Let’s put a heading two here with this little piece of content.” And the key thing is that allowed us to reuse content.

Allison Beatty

Related links:

LinkedIn:

Transcript:

Introduction with ambient background music

Christine Cuellar: From Scriptorium, this is Content Operations, a show that delivers industry-leading insights for global organizations.

Bill Swallow: In the end, you have a unified experience so that people aren’t relearning how to engage with your content in every context you produce it.

Sarah O’Keefe: Change is perceived as being risky, you have to convince me that making the change is less risky than not making the change.

Alan Pringle: And at some point, you are going to have tools, technology, and process that no longer support your needs, so if you think about that ahead of time, you’re going to be much better off.

End of introduction

Sarah O’Keefe: Hi everyone, I’m Sarah O’Keefe.

Allison Beatty: And I’m Allison Beatty.

SO: And in this episode, we’re focusing in on the LearningDITA architecture and how it might provide a pattern for other learning content initiatives, including maybe the one that you, the listener, are working on. We have a couple of major components in the learningDITA.com site architecture. We have learner records for the users. We have e-commerce, the way we actually sell the courses and monetize them. That is my personal favorite. And then we have the content itself and assorted relationships and connectors amongst all those pieces. So I’m here with Allison Beatty today, and her job is to explain all those things to us because Allison did all the actual work. So Allison, talk us through these things. Let’s start with Moodle. What is Moodle and what’s it doing in the site architecture?

AB: Okay. So Moodle is an open-source LMS that we-

SO: What’s an LMS?

AB: Learning management system, Sarah.

SO: Thank you.

AB: And we installed Moodle, our own instance of Moodle and customized it as we saw fit for our needs. And that is the component that acts as the layer between the content and the learning experience. So without the Moodle part, it’s just a big chunk of content that you can’t really interact with. And Moodle gives that a place to live.

SO: And then Moodle has the learner records, right?

AB: Yes.

SO: And what about groups? What does that look like?

AB: In Moodle, there’s a cohort functionality which allows us to use groups so that a manager can buy multiple seats and assign them to individuals and keep track of their course progress through group registration rather than individual self-service signups.

SO: So if I were a manager of a group that needs to learn DITA, instead of having to send five or 10 or 50 people individually to our site, I could just sign up once and buy five or 10 or 50 seats in a given course and then assign those via email addresses to all of my people, right?

AB: Exactly.

SO: Okay. So then speaking of buying things, we had to build out this e-commerce layer, which I was apparently traveling the entire time that this was going on, but I heard a lot of discussion about this in our Slack. So what does it look like? What does the commerce piece look like?

AB: Yeah. So it is a site outside of the actual learningDITA.com Moodle site that has a connector into Moodle so that you can buy a course or a group registration in the store, and then you get access to that content in Moodle.

SO: So we have this site, this actually separate site, and if you’re in there, you can do things like buy a course or buy a collection of courses or a number of seats. And then what were some of the fun complications that we ran into there?

AB: Oh yeah. So the fun complications there were figuring out how to set up an commerce site that A, connected to Moodle so that we could sell the courses, and B was able to process taxes and payments and all of that fun stuff. So Moodle has PayPal as a feature just out of the box and the base Moodle source code. But we wanted to accept credit cards directly and so that meant some additional layers, which is how we ended up with the store.scriptorium.com site, which is built on WordPress and uses a connector, the aforementioned connector, to make those two sites talk to each other. So they’re actually, the LMS and the e-commerce piece are totally separate websites, but exist within the same system environment.

SO: And most of you listening to this probably don’t care, but one of the things we learned was that digital training, downloadable training content is sometimes subject to sales tax and sometimes not, depending on the particular state or the particular jurisdiction. So it’s not just, what is sales tax in North Carolina versus what is sales tax in Washington state versus what is it in Oregon? But additionally, in each jurisdiction is this type of training subject to sales tax or not. So we spent a more than optimal amount of time on figuring out all of those things and making sure we get it right, because I’m extremely interested in making sure that those taxes are done correctly and keep us out of trouble.

AB: And the basic PayPal and Moodle wasn’t going to give us that level of granular control and specification.

SO: And typically our customers are looking to pay via credit card. So we’ve got the LMS piece with the learner experience, the actual learning platform. We’ve got the e-commerce piece with the Let’s Take Money piece. And then finally we have the content piece. So what does it look like to actually create these courses and create and manage the content that then eventually goes into Moodle?

AB: Yeah. So the content does have a single source of truth. It is all authored in DITA XML and stored in a central repository. You can see that content in GitHub. It’s open source. We took the DIT XML and we developed a SCORM transform that we could use to hook the content up into Moodle and be able to use all of the grading and progress and prerequisite type things that we needed to flush out the actual learning platform. We had learned a fun lesson along the way that Moodle does not support SCORM 2004. So that required a little bit of backtracking to make sure that we were getting the data into the correct SCORM to get into Moodle. And so because we used it XML for the content instead of the actual authoring in Moodle, we actually saved a lot of pain for ourselves with Moodle. The name of the game with Moodle is low-code/no-code, and they want you to manually build out these courses. But we wanted to automate that for obvious reasons, and SCORM allowed us to do that by having a transform that would take our DITA XML, put it in SCORM, and then we just upload the SCORM package to Moodle and don’t have to do all the painful things of let’s put a heading to here with this little piece of content. And the key thing is that allowed us to reuse content as well. And then if we need to update the content, all we have to do is replace the SCORM package in Moodle.

SO: So currently we have DITA 1.3 content out there. The DITA 2.0 content is under development, and I would say mostly done. We’re mainly waiting for the actual release of the those two chunks of content, although those courses are going to be in GitHub in the DITA training, or I think it’s called Learning DITA now, the Learning DITA project.

AB: Yep.

SO: Separately from that, we’re working on some new courses which are not going to be open sourced, but will be available on Moodle or… Sorry, on learningDITA.com. And so for those of you that are wondering, we’ve got a number of things on our roadmap. I’d love to hear more from people listening to this about what they need out of this. What more advanced courses are you looking for? One thing that we’ve heard a lot of requests for is a DITA open toolkit plugins 101.

How do I build a plugin? How do I use best practices? How do I make this all happen? So we have this, I don’t know, DITA inception thing happening because we’re training people on how to do DITA using DITA inside DITA, building out the stuff.

AB: It’s all very meta.

SO: It’s extremely meta. Hypothetically, what would it look like to localize this? So what we’ve delivered right now is in English, and in the past we have had people put together both, let’s see, German, Chinese, and I think French versions of the Learning DITA content. But what does it look like in this new architecture to localize?

AB: Yeah. So much like the tool chain for this new architecture, there are a couple of different components, and if you would like to localize the Learning DITA content, what you’ll want to look at is the content itself, translating and localizing the source content, but you’ll also need to localize Moodle some. So what you would do is make a, basically clone the Moodle site, and you’ll have to, not to go too into the Moodle weeds, but you’ll need to reconfigure the initializing PHP file a little bit. And then you would take your translated localized content and prep that up into your new Moodle for whichever language you’re localizing into.

SO: So it looks as though, you mentioned maintenance and this idea that Moodle by design wants you to make updates inside Moodle, and we pulled the content out of there. We’re basically saying Moodle is for learners and learning management and course records and sequencing and those kinds of things, and grading, I suppose, but the DITA back end is for content. So we’re putting all the content in DITA and then we push it over to SCORM, which then goes into learningDITA.com into the Moodle site. It sounds like more work, right? We had to build a SCORM transform. We had to put all this stuff in… We didn’t just go into Moodle and start authoring, which would be a lot faster on day one. So what’s the rationale for that? What does it look like in the long term to maintain something in Moodle versus to maintain something in the system that we’re describing?

AB: Yeah. It may seem easier on day one to manually put the content in, but when you need to make an update or change something, or particularly if you want to change something about a piece of content that is reused and repeated throughout the courses, you have to manually trawl through every single course page and make those updates, whereas with the SCORM package, once you have the SCORM transform set up and running to your liking, you can run your DITA content through there and then replace the SCORM package in Moodle instead of having to manually trawl through page by page. And maybe there is some content that is duplicated, but you mess it up because you were manually trawling through page by page. So it also, having DITA as the single source of truth helps you with maintenance, even if it seems scary at first.

SO: And I expect one of the things we’re looking at is CCMS courses, and the concept of what is a CCMS is going to be the same for all of them. The process of how do I check out files is going to be a little different for each of them. So if you think about that from a course material point of view, you would have that conceptual overview of, what is the component content management system and why do I care? And then there’s, how do I do the thing in specific component content management system? That would probably be unique, but the conceptual overview would be probably the same. So we might have two or five or 15 different courses, one for each CCMS, but you could see where the conceptual stuff would overlap.

AB: Exactly.

SO: Okay. Everyone, I hope this glimpse into content operations for structured learning content was useful. Of course, the learningDITA.com site is much smaller than what we typically do with our customers at scale, but we are getting more and more requests for learning content and structured content options for learning content. If you’re interested in learning more about learningDITA.com, would suggest you go there and check it out. Check out the course bundle, which has eight or nine courses on DITA stuff from what is structured authoring, all the way to tell me about the learning and training specialization. Allison, thank you so much for all your input.

AB: Thank you.

SO: And we’ll see you on the next one.

Christine Cuellar: Thank you for listening to Content Operations by Scriptorium. For more information, visit scriptorium.com or check the show notes for relevant links.