@learnpack/learnpack 5.0.277 → 5.0.279

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (585) hide show
  1. package/lib/commands/serve.js +28 -7
  2. package/lib/utils/export/epub.d.ts +2 -2
  3. package/lib/utils/export/epub.js +219 -59
  4. package/lib/utils/export/index.d.ts +1 -1
  5. package/lib/utils/export/types.d.ts +7 -0
  6. package/package.json +1 -1
  7. package/src/commands/serve.ts +39 -12
  8. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  9. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/cover.png +0 -0
  10. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  11. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  12. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  13. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  14. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.0-introduction-to-heygen/README.md +56 -0
  15. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  16. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  17. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  18. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  19. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  20. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.2-understanding-heygen-interface/README.md +68 -0
  21. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/01.2-understanding-heygen-interface/README.md.processed +68 -0
  22. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  23. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  24. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  25. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  26. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  27. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  28. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  29. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  30. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  31. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  32. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  33. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  34. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  35. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  36. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/exercises/05.0-test-your-avatar-knowledge/README.md.processed +66 -0
  37. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  38. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/01.0-introduction-to-heygen/README.html +124 -0
  39. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/01.1-setting-up-a-heygen-account/README.html +121 -0
  40. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/01.2-understanding-heygen-interface/README.html +125 -0
  41. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +122 -0
  42. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +62 -0
  43. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/03.0-creating-a-video-with-your-avatar/README.html +145 -0
  44. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/04.0-other-tools-you-can-explore/README.html +164 -0
  45. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/05.0-test-your-avatar-knowledge/README.html +116 -0
  46. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/main.html +17 -0
  47. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/html/toc.html +28 -0
  48. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/navigate-avatar-creation.png +0 -0
  49. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-091438png +0 -0
  50. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-100052png +0 -0
  51. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-113550png +0 -0
  52. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-113745png +0 -0
  53. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-114048png +0 -0
  54. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-114534png +0 -0
  55. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-114808png +0 -0
  56. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-115203png +0 -0
  57. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-115521png +0 -0
  58. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-120026png +0 -0
  59. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-120229png +0 -0
  60. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/assets/screenshot-2025-08-20-120628png +0 -0
  61. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/config.json +1 -0
  62. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/initialSyllabus.json +1 -0
  63. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/learn/sidebar.json +1 -0
  64. package/src/output/directory/04bedc40-a091-4bda-96e5-c71677655944/metadata.yaml +9 -0
  65. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  66. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/cover.png +0 -0
  67. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  68. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  69. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  70. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  71. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.0-introduction-to-heygen/README.md +56 -0
  72. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  73. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  74. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  75. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  76. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  77. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.2-understanding-heygen-interface/README.md +87 -0
  78. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/01.2-understanding-heygen-interface/README.md.processed +74 -0
  79. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  80. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  81. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  82. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  83. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  84. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  85. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  86. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  87. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  88. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  89. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  90. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  91. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  92. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  93. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/exercises/05.0-test-your-avatar-knowledge/README.md.processed +62 -0
  94. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  95. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/01.0-introduction-to-heygen/README.html +124 -0
  96. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  97. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/01.2-understanding-heygen-interface/README.html +126 -0
  98. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  99. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  100. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  101. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/04.0-other-tools-you-can-explore/README.html +164 -0
  102. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/05.0-test-your-avatar-knowledge/README.html +115 -0
  103. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/main.html +17 -0
  104. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/html/toc.html +28 -0
  105. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/navigate-avatar-creation.png +0 -0
  106. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-091438png +0 -0
  107. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-100052png +0 -0
  108. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-113550png +0 -0
  109. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-113745png +0 -0
  110. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-114048png +0 -0
  111. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-114534png +0 -0
  112. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-114808png +0 -0
  113. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-115203png +0 -0
  114. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-115521png +0 -0
  115. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-120026png +0 -0
  116. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-120229png +0 -0
  117. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/assets/screenshot-2025-08-20-120628png +0 -0
  118. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/config.json +1 -0
  119. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/initialSyllabus.json +1 -0
  120. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/learn/sidebar.json +42 -0
  121. package/src/output/directory/1b7c72c0-b651-4c86-84c7-dddb401d4cc9/metadata.yaml +9 -0
  122. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  123. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/cover.png +0 -0
  124. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  125. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  126. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  127. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  128. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.0-introduction-to-heygen/README.md +56 -0
  129. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  130. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  131. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  132. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  133. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  134. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.2-understanding-heygen-interface/README.md +68 -0
  135. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/01.2-understanding-heygen-interface/README.md.processed +68 -0
  136. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  137. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  138. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  139. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  140. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  141. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  142. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  143. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  144. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  145. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  146. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  147. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  148. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  149. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  150. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/exercises/05.0-test-your-avatar-knowledge/README.md.processed +66 -0
  151. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  152. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/01.0-introduction-to-heygen/README.html +124 -0
  153. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  154. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/01.2-understanding-heygen-interface/README.html +126 -0
  155. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  156. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  157. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  158. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/04.0-other-tools-you-can-explore/README.html +164 -0
  159. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/05.0-test-your-avatar-knowledge/README.html +116 -0
  160. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/main.html +17 -0
  161. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/html/toc.html +28 -0
  162. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/navigate-avatar-creation.png +0 -0
  163. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-091438png +0 -0
  164. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-100052png +0 -0
  165. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-113550png +0 -0
  166. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-113745png +0 -0
  167. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-114048png +0 -0
  168. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-114534png +0 -0
  169. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-114808png +0 -0
  170. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-115203png +0 -0
  171. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-115521png +0 -0
  172. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-120026png +0 -0
  173. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-120229png +0 -0
  174. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/assets/screenshot-2025-08-20-120628png +0 -0
  175. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/config.json +1 -0
  176. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/initialSyllabus.json +1 -0
  177. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/learn/sidebar.json +1 -0
  178. package/src/output/directory/27669a16-4599-4c4a-966c-4b3ef894a955/metadata.yaml +9 -0
  179. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  180. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/cover.png +0 -0
  181. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  182. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  183. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  184. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  185. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.0-introduction-to-heygen/README.md +56 -0
  186. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  187. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  188. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  189. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  190. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  191. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.2-understanding-heygen-interface/README.md +87 -0
  192. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/01.2-understanding-heygen-interface/README.md.processed +74 -0
  193. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  194. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  195. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  196. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  197. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  198. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  199. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  200. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  201. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  202. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  203. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  204. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  205. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  206. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  207. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/exercises/05.0-test-your-avatar-knowledge/README.md.processed +62 -0
  208. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  209. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/01.0-introduction-to-heygen/README.html +124 -0
  210. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  211. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/01.2-understanding-heygen-interface/README.html +126 -0
  212. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  213. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  214. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  215. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/04.0-other-tools-you-can-explore/README.html +164 -0
  216. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/05.0-test-your-avatar-knowledge/README.html +115 -0
  217. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/main.html +17 -0
  218. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/html/toc.html +28 -0
  219. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/navigate-avatar-creation.png +0 -0
  220. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-091438png +0 -0
  221. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-100052png +0 -0
  222. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-113550png +0 -0
  223. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-113745png +0 -0
  224. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-114048png +0 -0
  225. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-114534png +0 -0
  226. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-114808png +0 -0
  227. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-115203png +0 -0
  228. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-115521png +0 -0
  229. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-120026png +0 -0
  230. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-120229png +0 -0
  231. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/assets/screenshot-2025-08-20-120628png +0 -0
  232. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/config.json +1 -0
  233. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/initialSyllabus.json +1 -0
  234. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/learn/sidebar.json +1 -0
  235. package/src/output/directory/36c705fc-2075-4bb0-88a5-2dc23237e48e/metadata.yaml +9 -0
  236. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/navigate-avatar-creation.png +0 -0
  237. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-091438png +0 -0
  238. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-100052png +0 -0
  239. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-113550png +0 -0
  240. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-113745png +0 -0
  241. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-114048png +0 -0
  242. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-114534png +0 -0
  243. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-114808png +0 -0
  244. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-115203png +0 -0
  245. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-115521png +0 -0
  246. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-120026png +0 -0
  247. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-120229png +0 -0
  248. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/assets/screenshot-2025-08-20-120628png +0 -0
  249. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/config.json +1 -0
  250. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/initialSyllabus.json +1 -0
  251. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/.learn/sidebar.json +1 -0
  252. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  253. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/cover.png +0 -0
  254. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  255. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  256. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  257. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  258. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.0-introduction-to-heygen/README.md +56 -0
  259. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  260. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  261. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  262. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  263. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  264. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.2-understanding-heygen-interface/README.md +68 -0
  265. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/01.2-understanding-heygen-interface/README.md.processed +68 -0
  266. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  267. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  268. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  269. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  270. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  271. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  272. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  273. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  274. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  275. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  276. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  277. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  278. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  279. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  280. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/exercises/05.0-test-your-avatar-knowledge/README.md.processed +66 -0
  281. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  282. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/01.0-introduction-to-heygen/README.html +124 -0
  283. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  284. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/01.2-understanding-heygen-interface/README.html +126 -0
  285. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  286. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  287. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  288. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/04.0-other-tools-you-can-explore/README.html +164 -0
  289. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/05.0-test-your-avatar-knowledge/README.html +116 -0
  290. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/main.html +17 -0
  291. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/html/toc.html +28 -0
  292. package/src/output/directory/628226b7-7026-458a-a836-8acac5f01ad0/metadata.yaml +9 -0
  293. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  294. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/cover.png +0 -0
  295. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  296. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  297. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  298. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  299. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.0-introduction-to-heygen/README.md +56 -0
  300. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  301. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  302. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  303. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  304. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  305. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.2-understanding-heygen-interface/README.md +87 -0
  306. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/01.2-understanding-heygen-interface/README.md.processed +74 -0
  307. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  308. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  309. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  310. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  311. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  312. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  313. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  314. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  315. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  316. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  317. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  318. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  319. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  320. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  321. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/exercises/05.0-test-your-avatar-knowledge/README.md.processed +62 -0
  322. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  323. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/01.0-introduction-to-heygen/README.html +124 -0
  324. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  325. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/01.2-understanding-heygen-interface/README.html +126 -0
  326. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  327. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  328. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  329. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/04.0-other-tools-you-can-explore/README.html +164 -0
  330. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/05.0-test-your-avatar-knowledge/README.html +115 -0
  331. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/main.html +17 -0
  332. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/html/toc.html +28 -0
  333. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/navigate-avatar-creation.png +0 -0
  334. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-091438png +0 -0
  335. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-100052png +0 -0
  336. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-113550png +0 -0
  337. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-113745png +0 -0
  338. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-114048png +0 -0
  339. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-114534png +0 -0
  340. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-114808png +0 -0
  341. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-115203png +0 -0
  342. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-115521png +0 -0
  343. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-120026png +0 -0
  344. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-120229png +0 -0
  345. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/assets/screenshot-2025-08-20-120628png +0 -0
  346. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/config.json +1 -0
  347. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/initialSyllabus.json +1 -0
  348. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/learn/sidebar.json +1 -0
  349. package/src/output/directory/9cfc3831-206c-44e9-aaec-76d90dc007ad/metadata.yaml +9 -0
  350. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  351. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/cover.png +0 -0
  352. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  353. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  354. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  355. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  356. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.0-introduction-to-heygen/README.md +56 -0
  357. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  358. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  359. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  360. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  361. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  362. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.2-understanding-heygen-interface/README.md +87 -0
  363. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/01.2-understanding-heygen-interface/README.md.processed +74 -0
  364. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  365. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  366. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  367. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  368. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  369. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  370. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  371. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  372. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  373. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  374. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  375. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  376. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  377. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  378. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/exercises/05.0-test-your-avatar-knowledge/README.md.processed +62 -0
  379. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  380. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/01.0-introduction-to-heygen/README.html +124 -0
  381. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  382. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/01.2-understanding-heygen-interface/README.html +126 -0
  383. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  384. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  385. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  386. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/04.0-other-tools-you-can-explore/README.html +164 -0
  387. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/05.0-test-your-avatar-knowledge/README.html +115 -0
  388. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/main.html +17 -0
  389. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/html/toc.html +28 -0
  390. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/navigate-avatar-creation.png +0 -0
  391. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-091438png +0 -0
  392. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-100052png +0 -0
  393. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-113550png +0 -0
  394. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-113745png +0 -0
  395. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-114048png +0 -0
  396. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-114534png +0 -0
  397. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-114808png +0 -0
  398. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-115203png +0 -0
  399. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-115521png +0 -0
  400. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-120026png +0 -0
  401. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-120229png +0 -0
  402. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/assets/screenshot-2025-08-20-120628png +0 -0
  403. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/config.json +1 -0
  404. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/initialSyllabus.json +1 -0
  405. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/learn/sidebar.json +1 -0
  406. package/src/output/directory/bcf520d5-1472-4846-8afd-2ff49339c41a/metadata.yaml +9 -0
  407. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  408. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/cover.png +0 -0
  409. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  410. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  411. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  412. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  413. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.0-introduction-to-heygen/README.md +56 -0
  414. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  415. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  416. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  417. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  418. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  419. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.2-understanding-heygen-interface/README.md +87 -0
  420. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/01.2-understanding-heygen-interface/README.md.processed +74 -0
  421. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  422. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  423. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  424. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  425. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  426. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  427. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  428. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  429. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  430. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  431. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  432. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  433. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  434. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  435. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/exercises/05.0-test-your-avatar-knowledge/README.md.processed +62 -0
  436. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  437. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/01.0-introduction-to-heygen/README.html +124 -0
  438. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/01.1-setting-up-a-heygen-account/README.html +122 -0
  439. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/01.2-understanding-heygen-interface/README.html +126 -0
  440. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +127 -0
  441. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +63 -0
  442. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/03.0-creating-a-video-with-your-avatar/README.html +149 -0
  443. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/04.0-other-tools-you-can-explore/README.html +164 -0
  444. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/05.0-test-your-avatar-knowledge/README.html +115 -0
  445. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/main.html +17 -0
  446. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/html/toc.html +28 -0
  447. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/navigate-avatar-creation.png +0 -0
  448. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-091438png +0 -0
  449. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-100052png +0 -0
  450. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-113550png +0 -0
  451. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-113745png +0 -0
  452. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-114048png +0 -0
  453. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-114534png +0 -0
  454. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-114808png +0 -0
  455. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-115203png +0 -0
  456. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-115521png +0 -0
  457. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-120026png +0 -0
  458. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-120229png +0 -0
  459. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/assets/screenshot-2025-08-20-120628png +0 -0
  460. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/config.json +1 -0
  461. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/initialSyllabus.json +1 -0
  462. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/learn/sidebar.json +1 -0
  463. package/src/output/directory/cdf069e9-cb18-414f-81cb-8c8f4339a38f/metadata.yaml +9 -0
  464. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  465. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/cover.png +0 -0
  466. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  467. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  468. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  469. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  470. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.0-introduction-to-heygen/README.md +56 -0
  471. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  472. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  473. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  474. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  475. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  476. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.2-understanding-heygen-interface/README.md +68 -0
  477. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/01.2-understanding-heygen-interface/README.md.processed +68 -0
  478. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  479. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  480. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  481. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  482. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  483. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  484. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  485. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  486. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  487. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  488. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  489. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  490. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  491. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  492. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/exercises/05.0-test-your-avatar-knowledge/README.md.processed +66 -0
  493. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  494. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/01.0-introduction-to-heygen/README.html +124 -0
  495. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/01.1-setting-up-a-heygen-account/README.html +121 -0
  496. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/01.2-understanding-heygen-interface/README.html +125 -0
  497. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +122 -0
  498. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +62 -0
  499. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/03.0-creating-a-video-with-your-avatar/README.html +145 -0
  500. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/04.0-other-tools-you-can-explore/README.html +164 -0
  501. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/05.0-test-your-avatar-knowledge/README.html +116 -0
  502. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/main.html +17 -0
  503. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/html/toc.html +28 -0
  504. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/navigate-avatar-creation.png +0 -0
  505. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-091438png +0 -0
  506. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-100052png +0 -0
  507. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-113550png +0 -0
  508. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-113745png +0 -0
  509. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-114048png +0 -0
  510. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-114534png +0 -0
  511. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-114808png +0 -0
  512. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-115203png +0 -0
  513. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-115521png +0 -0
  514. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-120026png +0 -0
  515. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-120229png +0 -0
  516. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/assets/screenshot-2025-08-20-120628png +0 -0
  517. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/config.json +1 -0
  518. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/initialSyllabus.json +1 -0
  519. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/learn/sidebar.json +1 -0
  520. package/src/output/directory/d131474e-536f-46e5-a144-616560fe3b0f/metadata.yaml +9 -0
  521. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/navigate-avatar-creation.png +0 -0
  522. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-091438png +0 -0
  523. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-100052png +0 -0
  524. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-113550png +0 -0
  525. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-113745png +0 -0
  526. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-114048png +0 -0
  527. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-114534png +0 -0
  528. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-114808png +0 -0
  529. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-115203png +0 -0
  530. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-115521png +0 -0
  531. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-120026png +0 -0
  532. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-120229png +0 -0
  533. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/assets/screenshot-2025-08-20-120628png +0 -0
  534. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/config.json +1 -0
  535. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/initialSyllabus.json +1 -0
  536. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/.learn/sidebar.json +1 -0
  537. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/avatar-creation-with-heygen-a-practical-guide.epub +0 -0
  538. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/cover.png +0 -0
  539. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.es.md +23 -0
  540. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md +23 -0
  541. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/00.0-welcome-to-avatar-creation-with-heygen/README.md.processed +23 -0
  542. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.0-introduction-to-heygen/README.es.md +56 -0
  543. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.0-introduction-to-heygen/README.md +56 -0
  544. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.0-introduction-to-heygen/README.md.processed +56 -0
  545. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.1-setting-up-a-heygen-account/README.es.md +76 -0
  546. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.1-setting-up-a-heygen-account/README.md +70 -0
  547. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.1-setting-up-a-heygen-account/README.md.processed +70 -0
  548. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.2-understanding-heygen-interface/README.es.md +70 -0
  549. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.2-understanding-heygen-interface/README.md +68 -0
  550. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/01.2-understanding-heygen-interface/README.md.processed +68 -0
  551. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.es.md +79 -0
  552. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md +83 -0
  553. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.0-creating-your-avatar-navigate-in-the-interface/README.md.processed +83 -0
  554. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.es.md +22 -0
  555. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md +46 -0
  556. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/02.2-your-avatar-is-ready-what-to-do-now/README.md.processed +46 -0
  557. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/03.0-creating-a-video-with-your-avatar/README.es.md +73 -0
  558. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/03.0-creating-a-video-with-your-avatar/README.md +95 -0
  559. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/03.0-creating-a-video-with-your-avatar/README.md.processed +95 -0
  560. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/04.0-other-tools-you-can-explore/README.es.md +63 -0
  561. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/04.0-other-tools-you-can-explore/README.md +63 -0
  562. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/04.0-other-tools-you-can-explore/README.md.processed +63 -0
  563. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/05.0-test-your-avatar-knowledge/README.es.md +65 -0
  564. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/05.0-test-your-avatar-knowledge/README.md +66 -0
  565. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/exercises/05.0-test-your-avatar-knowledge/README.md.processed +66 -0
  566. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/00.0-welcome-to-avatar-creation-with-heygen/README.html +62 -0
  567. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/01.0-introduction-to-heygen/README.html +124 -0
  568. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/01.1-setting-up-a-heygen-account/README.html +121 -0
  569. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/01.2-understanding-heygen-interface/README.html +125 -0
  570. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/02.0-creating-your-avatar-navigate-in-the-interface/README.html +122 -0
  571. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/02.2-your-avatar-is-ready-what-to-do-now/README.html +62 -0
  572. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/03.0-creating-a-video-with-your-avatar/README.html +145 -0
  573. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/04.0-other-tools-you-can-explore/README.html +164 -0
  574. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/05.0-test-your-avatar-knowledge/README.html +116 -0
  575. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/main.html +17 -0
  576. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/html/toc.html +28 -0
  577. package/src/output/directory/de8e3599-60a4-4f1d-9826-a0762d0b9402/metadata.yaml +9 -0
  578. package/src/output/directory/f33b274b-6a3f-40f8-85c2-a96aa8bfdbe6.zip +0 -0
  579. package/src/ui/_app/app.css +1 -1
  580. package/src/ui/_app/app.js +355 -355
  581. package/src/ui/app.tar.gz +0 -0
  582. package/src/utils/export/README.md +178 -178
  583. package/src/utils/export/epub.ts +288 -76
  584. package/src/utils/export/index.ts +1 -1
  585. package/src/utils/export/types.ts +8 -0
@@ -1303,9 +1303,10 @@ class ServeCommand extends SessionCommand_1.default {
1303
1303
  res.status(500).json({ error: "Failed to fetch the resource" });
1304
1304
  }
1305
1305
  });
1306
- app.get("/export/:course_slug/:format", async (req, res) => {
1306
+ // Export endpoint (POST) - supports both SCORM and EPUB
1307
+ app.post("/export/:course_slug/:format", async (req, res) => {
1307
1308
  const { course_slug, format } = req.params;
1308
- const { language } = req.query;
1309
+ const { language = "en", metadata } = req.body;
1309
1310
  try {
1310
1311
  let outputPath;
1311
1312
  let filename;
@@ -1319,19 +1320,33 @@ class ServeCommand extends SessionCommand_1.default {
1319
1320
  filename = `${course_slug}-scorm.zip`;
1320
1321
  }
1321
1322
  else if (format === "epub") {
1323
+ console.log("EPUB export", metadata);
1324
+ // Validate required metadata for EPUB
1325
+ if (!metadata ||
1326
+ !metadata.creator ||
1327
+ !metadata.publisher ||
1328
+ !metadata.title ||
1329
+ !metadata.rights ||
1330
+ !metadata.lang) {
1331
+ console.log("Missing required metadata for EPUB export", metadata);
1332
+ return res.status(400).json({
1333
+ error: "Missing required metadata for EPUB export",
1334
+ required: ["creator", "publisher", "title", "rights", "lang"],
1335
+ });
1336
+ }
1322
1337
  outputPath = await (0, export_1.exportToEpub)({
1323
1338
  courseSlug: course_slug,
1324
1339
  format: "epub",
1325
1340
  bucket,
1326
1341
  outDir: path.join(__dirname, "../output/directory"),
1327
- language: language || "en",
1328
- });
1342
+ language: language,
1343
+ }, metadata);
1329
1344
  filename = `${course_slug}.epub`;
1330
1345
  }
1331
1346
  else {
1332
- return res
1333
- .status(400)
1334
- .json({ error: "Invalid format. Supported formats: scorm, epub" });
1347
+ return res.status(400).json({
1348
+ error: "Invalid format. Supported formats: scorm, epub",
1349
+ });
1335
1350
  }
1336
1351
  // Send the file and clean up
1337
1352
  res.download(outputPath, filename, err => {
@@ -1340,6 +1355,12 @@ class ServeCommand extends SessionCommand_1.default {
1340
1355
  // Clean up the generated file
1341
1356
  if (fs.existsSync(outputPath)) {
1342
1357
  fs.unlinkSync(outputPath);
1358
+ if (format === "epub") {
1359
+ const tempDir = path.dirname(outputPath);
1360
+ if (fs.existsSync(tempDir)) {
1361
+ rimraf.sync(tempDir);
1362
+ }
1363
+ }
1343
1364
  }
1344
1365
  });
1345
1366
  }
@@ -1,2 +1,2 @@
1
- import { ExportOptions } from "./types";
2
- export declare function exportToEpub(options: ExportOptions): Promise<string>;
1
+ import { ExportOptions, EpubMetadata } from "./types";
2
+ export declare function exportToEpub(options: ExportOptions, epubMetadata: EpubMetadata): Promise<string>;
@@ -8,13 +8,87 @@ const rimraf = require("rimraf");
8
8
  const uuid_1 = require("uuid");
9
9
  const child_process_1 = require("child_process");
10
10
  const shared_1 = require("./shared");
11
+ const replaceQuestionsFromMarkdown = (markdown) => {
12
+ // Search for all code blocks like this (No breaking lines sensitive)
13
+ // ```question some parameters
14
+ // some text
15
+ // ```
16
+ const questionRegex = /```question([\s\S]*?)```/g;
17
+ return markdown.replace(questionRegex, "");
18
+ };
19
+ const replaceMermaidFromMarkdown = (markdown) => {
20
+ // Search for all code blocks like this (No breaking lines sensitive)
21
+ // ```mermaid
22
+ // some graphs in mermaid syntax
23
+ // ```
24
+ const mermaidRegex = /```mermaid([\s\S]*?)```/g;
25
+ return markdown.replace(mermaidRegex, "");
26
+ };
27
+ // Download cover image from bucket
28
+ async function downloadCoverImage(bucket, courseSlug, outputDir) {
29
+ try {
30
+ const coverImagePath = path.join(outputDir, "cover.png");
31
+ const [coverBuf] = await bucket
32
+ .file(`courses/${courseSlug}/preview.png`)
33
+ .download();
34
+ fs.writeFileSync(coverImagePath, coverBuf);
35
+ console.log("Cover image downloaded:", coverImagePath);
36
+ return coverImagePath;
37
+ }
38
+ catch (error) {
39
+ console.log("No cover image found, skipping...");
40
+ return undefined;
41
+ }
42
+ }
11
43
  // Convert markdown to HTML using pandoc
12
- async function convertMarkdownToHtml(markdownPath, outputPath) {
44
+ async function convertMarkdownToHtml(markdownPath, outputPath, learnAssetsDir) {
13
45
  return new Promise((resolve, reject) => {
14
46
  let stdout = "";
15
47
  let stderr = "";
48
+ // Process markdown content to fix image paths
49
+ let markdownContent = fs.readFileSync(markdownPath, "utf-8");
50
+ if (learnAssetsDir && fs.existsSync(learnAssetsDir)) {
51
+ // Find all image references in markdown
52
+ const imageRegex = /!\[([^\]]*)\]\(([^)]+)\)/g;
53
+ let match;
54
+ let imageCount = 0;
55
+ while ((match = imageRegex.exec(markdownContent)) !== null) {
56
+ const [fullMatch, altText, imagePath] = match;
57
+ // Check if it's a relative path starting with /learn/assets/
58
+ if (imagePath.startsWith("/.learn/assets/")) {
59
+ const imageName = path.basename(imagePath);
60
+ const absoluteImagePath = path.join(learnAssetsDir, imageName);
61
+ console.log(`📸 Looking for image: ${imageName}`);
62
+ console.log(`📁 Learn assets dir: ${learnAssetsDir}`);
63
+ console.log(`📁 Absolute path: ${absoluteImagePath}`);
64
+ console.log(`📁 Path exists: ${fs.existsSync(absoluteImagePath)}`);
65
+ if (fs.existsSync(absoluteImagePath)) {
66
+ // Use absolute path for the image
67
+ console.log(`✅ Found image, replacing path: ${imagePath} -> ${absoluteImagePath}`);
68
+ markdownContent = markdownContent.replace(fullMatch, `![${altText}](${absoluteImagePath})`);
69
+ imageCount++;
70
+ }
71
+ else {
72
+ console.log(`❌ Image not found: ${absoluteImagePath}`);
73
+ // List files in the assets directory for debugging
74
+ if (fs.existsSync(learnAssetsDir)) {
75
+ const files = fs.readdirSync(learnAssetsDir);
76
+ console.log(`📁 Files in assets directory: ${files.join(", ")}`);
77
+ }
78
+ else {
79
+ console.log(`❌ Assets directory does not exist: ${learnAssetsDir}`);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ markdownContent = replaceQuestionsFromMarkdown(markdownContent);
86
+ markdownContent = replaceMermaidFromMarkdown(markdownContent);
87
+ // Write processed markdown to a temporary file
88
+ const tempMarkdownPath = markdownPath + ".processed";
89
+ fs.writeFileSync(tempMarkdownPath, markdownContent, "utf-8");
16
90
  const pandocArgs = [
17
- markdownPath,
91
+ tempMarkdownPath,
18
92
  "-o",
19
93
  outputPath,
20
94
  "--from",
@@ -25,9 +99,6 @@ async function convertMarkdownToHtml(markdownPath, outputPath) {
25
99
  "--css",
26
100
  path.join(__dirname, "../templates/epub/epub.css"),
27
101
  ];
28
- console.log("Executing pandoc command:", "pandoc", pandocArgs.join(" "));
29
- console.log("Input file exists:", fs.existsSync(markdownPath));
30
- console.log("Output directory exists:", fs.existsSync(path.dirname(outputPath)));
31
102
  const pandoc = (0, child_process_1.spawn)("pandoc", pandocArgs);
32
103
  pandoc.stdout.on("data", (data) => {
33
104
  stdout += data.toString();
@@ -36,7 +107,12 @@ async function convertMarkdownToHtml(markdownPath, outputPath) {
36
107
  stderr += data.toString();
37
108
  });
38
109
  pandoc.on("close", (code) => {
110
+ // Clean up temporary file
111
+ // if (fs.existsSync(tempMarkdownPath)) {
112
+ // fs.unlinkSync(tempMarkdownPath);
113
+ // }
39
114
  if (code === 0) {
115
+ console.log("Successfully converted:", markdownPath, "->", outputPath);
40
116
  resolve();
41
117
  }
42
118
  else {
@@ -52,11 +128,27 @@ async function convertMarkdownToHtml(markdownPath, outputPath) {
52
128
  });
53
129
  }
54
130
  // Generate EPUB using pandoc
55
- async function generateEpub(htmlFiles, outputPath, metadata) {
131
+ async function generateEpub(htmlFiles, outputPath, metadata, epubMetadata, coverImagePath) {
56
132
  return new Promise((resolve, reject) => {
57
133
  var _a;
58
134
  let stdout = "";
59
135
  let stderr = "";
136
+ const yamlPath = path.join(path.dirname(outputPath), "metadata.yaml");
137
+ const escapeYaml = (str) => {
138
+ if (!str)
139
+ return "";
140
+ return str.replace(/"/g, '\\"').replace(/\n/g, "\\n");
141
+ };
142
+ const yamlContent = `---
143
+ title: "${epubMetadata.title}"
144
+ creator: "${epubMetadata.creator}"
145
+ publisher: "${epubMetadata.publisher}"
146
+ rights: "${epubMetadata.rights}"
147
+ lang: "${epubMetadata.lang}"
148
+ description: "${escapeYaml(metadata.description || "")}"
149
+ subject: "${((_a = metadata.technologies) === null || _a === void 0 ? void 0 : _a.join(", ")) || "Programming"}"
150
+ ---`;
151
+ fs.writeFileSync(yamlPath, yamlContent, "utf-8");
60
152
  // Include all HTML files in the EPUB
61
153
  const pandocArgs = [
62
154
  ...htmlFiles, // All HTML files
@@ -66,59 +158,62 @@ async function generateEpub(htmlFiles, outputPath, metadata) {
66
158
  "html",
67
159
  "--to",
68
160
  "epub",
69
- "--metadata",
70
- `title=${metadata.title}`,
71
- "--metadata",
72
- `language=${metadata.language || "en"}`,
73
- "--metadata",
74
- `creator=FourGeeksAcademy`,
75
- "--metadata",
76
- `description=${metadata.description || ""}`,
77
- "--metadata",
78
- `subject=${((_a = metadata.technologies) === null || _a === void 0 ? void 0 : _a.join(", ")) || "Programming"}`,
161
+ "--metadata-file",
162
+ yamlPath,
79
163
  "--css",
80
164
  path.join(__dirname, "../templates/epub/epub.css"),
81
165
  ];
82
- console.log("Executing pandoc EPUB command:", "pandoc", pandocArgs.join(" "));
83
- console.log("HTML files to include:", htmlFiles);
84
- console.log("All input files exist:", htmlFiles.every((file) => fs.existsSync(file)));
85
- console.log("Output directory exists:", fs.existsSync(path.dirname(outputPath)));
166
+ // Add cover image if available - use absolute path
167
+ if (coverImagePath) {
168
+ pandocArgs.push("--epub-cover-image", coverImagePath);
169
+ }
170
+ console.log("🔧 Executing pandoc EPUB command:");
171
+ console.log("Command:", "pandoc", pandocArgs.join(" "));
86
172
  const pandoc = (0, child_process_1.spawn)("pandoc", pandocArgs);
87
173
  pandoc.stdout.on("data", (data) => {
88
- stdout += data.toString();
174
+ const output = data.toString();
175
+ stdout += output;
176
+ console.log("📤 Pandoc STDOUT:", output);
89
177
  });
90
178
  pandoc.stderr.on("data", (data) => {
91
- stderr += data.toString();
179
+ const output = data.toString();
180
+ stderr += output;
181
+ console.log("⚠️ Pandoc STDERR:", output);
92
182
  });
93
183
  pandoc.on("close", (code) => {
184
+ console.log(`🏁 Pandoc process finished with exit code: ${code}`);
94
185
  if (code === 0) {
186
+ console.log("✅ EPUB generation successful!");
95
187
  resolve();
96
188
  }
97
189
  else {
98
190
  const errorMessage = `Pandoc process exited with code ${code}\n\nSTDOUT:\n${stdout}\n\nSTDERR:\n${stderr}`;
99
- console.error("Pandoc Error Details:", errorMessage);
191
+ console.error("Pandoc Error Details:", errorMessage);
100
192
  reject(new Error(errorMessage));
101
193
  }
102
194
  });
103
195
  pandoc.on("error", (err) => {
104
- console.error("Pandoc spawn error:", err);
196
+ console.error("Pandoc spawn error:", err);
105
197
  reject(err);
106
198
  });
107
199
  });
108
200
  }
109
201
  // Process exercises and convert to HTML
110
- async function processExercises(exercisesDir, outputDir, language = "en") {
202
+ async function processExercises(exercisesDir, outputDir, language = "en", learnAssetsDir) {
111
203
  const htmlFiles = [];
112
204
  console.log("Processing exercises directory:", exercisesDir);
113
205
  console.log("Output directory:", outputDir);
114
206
  console.log("Language:", language);
207
+ console.log("Learn assets directory:", learnAssetsDir);
115
208
  if (!fs.existsSync(exercisesDir)) {
116
209
  console.log("Exercises directory does not exist:", exercisesDir);
117
210
  return htmlFiles;
118
211
  }
119
212
  console.log("Exercises directory exists, scanning for files...");
120
213
  const processDirectory = async (dir, relativePath = "") => {
214
+ console.log(`🔍 Processing directory: ${dir} (relative: ${relativePath})`);
121
215
  const entries = fs.readdirSync(dir, { withFileTypes: true });
216
+ console.log(`📁 Found ${entries.length} entries in ${dir}:`, entries.map((e) => e.name));
122
217
  // Sort entries to prioritize README files first
123
218
  entries.sort((a, b) => {
124
219
  const aName = a.name.toLowerCase();
@@ -143,28 +238,41 @@ async function processExercises(exercisesDir, outputDir, language = "en") {
143
238
  // Apply language filtering for all markdown files
144
239
  const baseName = entry.name.replace(/\.(md|markdown)$/, "");
145
240
  if (language === "en") {
146
- // For English: exclude files with language suffixes
147
- if (baseName.includes(".") &&
241
+ // For English: only include README.md and files without language suffixes
242
+ if (entry.name.toLowerCase() === "readme.md") {
243
+ console.log(`✅ Including English README: ${relativeFilePath}`);
244
+ }
245
+ else if (baseName.includes(".") &&
148
246
  /\.(es|fr|de|it|pt|ja|ko|zh|ar|ru)$/i.test(baseName)) {
149
- console.log("Skipping language-specific file for English:", relativeFilePath);
247
+ console.log(`❌ Skipping language-specific file for English: ${relativeFilePath}`);
150
248
  continue;
151
249
  }
250
+ else {
251
+ console.log(`✅ Including English file: ${relativeFilePath}`);
252
+ }
152
253
  }
153
254
  else {
154
255
  // For other languages: only include files with the correct language suffix
155
- if (!baseName.endsWith(`.${language}`)) {
156
- console.log("Skipping file with different language:", relativeFilePath);
256
+ if (entry.name.toLowerCase() === "readme.md") {
257
+ console.log(`❌ Skipping English README for language ${language}: ${relativeFilePath}`);
157
258
  continue;
158
259
  }
260
+ else if (!baseName.endsWith(`.${language}`)) {
261
+ console.log(`❌ Skipping file with different language: ${relativeFilePath}`);
262
+ continue;
263
+ }
264
+ else {
265
+ console.log(`✅ Including ${language} file: ${relativeFilePath}`);
266
+ }
159
267
  }
160
268
  // Convert markdown to HTML
161
269
  console.log("Converting markdown file:", relativeFilePath);
162
- const htmlFileName = entry.name.replace(/\.(md|markdown)$/, ".html");
270
+ // const htmlFileName = entry.name.replace(/\.(md|markdown)$/, ".html");
163
271
  const htmlPath = path.join(outputDir, relativeFilePath.replace(/\.(md|markdown)$/, ".html"));
164
272
  console.log("HTML output path:", htmlPath);
165
273
  mkdirp.sync(path.dirname(htmlPath));
166
274
  // esling-disable-next-line
167
- await convertMarkdownToHtml(fullPath, htmlPath);
275
+ await convertMarkdownToHtml(fullPath, htmlPath, learnAssetsDir);
168
276
  htmlFiles.push(htmlPath);
169
277
  console.log("Successfully converted:", relativeFilePath, "->", htmlPath);
170
278
  }
@@ -186,8 +294,25 @@ async function processExercises(exercisesDir, outputDir, language = "en") {
186
294
  await processDirectory(exercisesDir);
187
295
  return htmlFiles;
188
296
  }
297
+ const titlelify = (title) => {
298
+ return title.replace(/[-_]/g, " ").replace(/\b\w/g, (l) => l.toUpperCase());
299
+ };
300
+ // Read sidebar.json to get exercise titles
301
+ function readSidebarData(learnDir) {
302
+ try {
303
+ const sidebarPath = path.join(learnDir, "sidebar.json");
304
+ if (fs.existsSync(sidebarPath)) {
305
+ const sidebarContent = fs.readFileSync(sidebarPath, "utf-8");
306
+ return JSON.parse(sidebarContent);
307
+ }
308
+ }
309
+ catch (error) {
310
+ console.log("⚠️ Could not read sidebar.json:", error);
311
+ }
312
+ return null;
313
+ }
189
314
  // Create EPUB table of contents
190
- function createTocHtml(htmlFiles, metadata) {
315
+ function createTocHtml(htmlFiles, metadata, sidebarData, language) {
191
316
  let tocContent = `
192
317
  <!DOCTYPE html>
193
318
  <html>
@@ -205,11 +330,24 @@ function createTocHtml(htmlFiles, metadata) {
205
330
  `;
206
331
  htmlFiles.forEach((file) => {
207
332
  const fileName = path.basename(file, ".html");
208
- const displayName = fileName
209
- .replace(/[-_]/g, " ")
210
- .replace(/\b\w/g, (l) => l.toUpperCase());
211
- // Use the full relative path for the href to ensure proper navigation
212
- const relativePath = file.replace(/.*\/html\//, "").replace(/\\/g, "/");
333
+ const relativePath = fileName + ".html";
334
+ // Get the parent directory name (exercise slug) to look up in sidebar
335
+ const parentDir = path.basename(path.dirname(file));
336
+ // Try to get the title from sidebar.json using the parent directory name
337
+ let displayName = fileName;
338
+ if (sidebarData && sidebarData[parentDir]) {
339
+ console.log("🔍 Found title in sidebar.json:", sidebarData[parentDir], "; language: ", language);
340
+ // Get the title for the current language, fallback to English, then to the key itself
341
+ displayName =
342
+ sidebarData[parentDir][language] ||
343
+ sidebarData[parentDir]["en"] ||
344
+ titlelify(parentDir);
345
+ }
346
+ else {
347
+ console.log("🔍 No title found in sidebar.json for parent directory:", parentDir);
348
+ // Fallback to titlelify if not found in sidebar
349
+ displayName = titlelify(parentDir);
350
+ }
213
351
  tocContent += ` <li><a href="${relativePath}">${displayName}</a></li>\n`;
214
352
  });
215
353
  tocContent += `
@@ -219,12 +357,13 @@ function createTocHtml(htmlFiles, metadata) {
219
357
  </html>`;
220
358
  return tocContent;
221
359
  }
222
- async function exportToEpub(options) {
360
+ async function exportToEpub(options, epubMetadata) {
223
361
  var _a, _b, _c;
224
362
  const { courseSlug, bucket, outDir, language = "en" } = options;
225
- console.log("Starting EPUB export for course:", courseSlug);
226
- console.log("Output directory:", outDir);
227
- console.log("Language:", language);
363
+ console.log("🚀 Starting EPUB export for course:", courseSlug);
364
+ console.log("📁 Output directory:", outDir);
365
+ console.log("🌍 Language:", language);
366
+ console.log("📋 EPUB Metadata:", epubMetadata);
228
367
  // 1. Create temporary folder
229
368
  const tmpName = (0, uuid_1.v4)();
230
369
  const epubOutDir = path.join(outDir, tmpName);
@@ -234,29 +373,51 @@ async function exportToEpub(options) {
234
373
  // 2. Create EPUB template directory
235
374
  const epubTemplateDir = path.join(epubOutDir, "template");
236
375
  mkdirp.sync(epubTemplateDir);
237
- // 3. Download exercises and .learn from bucket
238
- console.log("Downloading exercises...");
376
+ // 3. Download exercises, .learn, and cover image from bucket
377
+ console.log("📥 Downloading exercises...");
239
378
  await (0, shared_1.downloadS3Folder)(bucket, `courses/${courseSlug}/exercises/`, path.join(epubOutDir, "exercises"));
240
- console.log("Downloading .learn files...");
241
- await (0, shared_1.downloadS3Folder)(bucket, `courses/${courseSlug}/.learn/`, path.join(epubOutDir, ".learn"));
379
+ console.log(" Exercises downloaded successfully");
380
+ console.log("📥 Downloading .learn files...");
381
+ await (0, shared_1.downloadS3Folder)(bucket, `courses/${courseSlug}/.learn/`, path.join(epubOutDir, "learn"));
382
+ console.log("✅ .learn files downloaded successfully");
383
+ console.log("📥 Downloading cover image...");
384
+ const coverImagePath = await downloadCoverImage(bucket, courseSlug, epubOutDir);
385
+ console.log("✅ Cover image download completed:", coverImagePath ? "Found" : "Not found");
242
386
  // 4. Read learn.json for course info
243
387
  console.log("Reading course metadata...");
244
388
  const learnJson = await (0, shared_1.getCourseMetadata)(bucket, courseSlug);
245
389
  const metadata = {
246
- title: ((_a = learnJson.title) === null || _a === void 0 ? void 0 : _a.en) || learnJson.title || courseSlug,
247
- description: ((_b = learnJson.description) === null || _b === void 0 ? void 0 : _b.en) || learnJson.description,
248
- language: learnJson.language || "en",
390
+ title: ((_a = learnJson.title) === null || _a === void 0 ? void 0 : _a[epubMetadata.lang]) || courseSlug,
391
+ description: ((_b = learnJson.description) === null || _b === void 0 ? void 0 : _b[epubMetadata.lang]) || learnJson.description,
392
+ language: epubMetadata.lang,
249
393
  technologies: learnJson.technologies || [],
250
394
  difficulty: learnJson.difficulty || "beginner",
251
395
  };
252
396
  console.log("Course metadata:", metadata);
253
397
  // 5. Process exercises and convert to HTML
254
- console.log("Processing exercises and converting to HTML...");
255
- const htmlFiles = await processExercises(path.join(epubOutDir, "exercises"), path.join(epubOutDir, "html"), language);
256
- console.log("Generated HTML files:", htmlFiles.length);
257
- console.log("HTML files:", htmlFiles);
258
- // 6. Create table of contents
259
- const tocHtml = createTocHtml(htmlFiles, metadata);
398
+ console.log("🔄 Processing exercises and converting to HTML...");
399
+ // First, let's see what files were downloaded
400
+ const exercisesPath = path.join(epubOutDir, "exercises");
401
+ console.log("📂 Exercises directory contents:");
402
+ if (fs.existsSync(exercisesPath)) {
403
+ const exerciseDirs = fs.readdirSync(exercisesPath, { withFileTypes: true });
404
+ console.log(`Found ${exerciseDirs.length} exercise directories:`);
405
+ exerciseDirs.forEach((dir) => {
406
+ if (dir.isDirectory()) {
407
+ const dirPath = path.join(exercisesPath, dir.name);
408
+ const files = fs.readdirSync(dirPath);
409
+ console.log(` 📁 ${dir.name}: ${files.length} files - ${files.join(", ")}`);
410
+ }
411
+ });
412
+ }
413
+ else {
414
+ console.log("❌ Exercises directory does not exist!");
415
+ }
416
+ const htmlFiles = await processExercises(path.join(epubOutDir, "exercises"), path.join(epubOutDir, "html"), language, path.join(epubOutDir, "learn", "assets"));
417
+ // 6. Read sidebar data and create table of contents
418
+ const sidebarData = readSidebarData(path.join(epubOutDir, "learn"));
419
+ console.log("📋 Sidebar data loaded:", sidebarData ? "Success" : "Not found");
420
+ const tocHtml = createTocHtml(htmlFiles, metadata, sidebarData, language);
260
421
  const tocPath = path.join(epubOutDir, "html", "toc.html");
261
422
  mkdirp.sync(path.dirname(tocPath));
262
423
  fs.writeFileSync(tocPath, tocHtml, "utf-8");
@@ -282,17 +443,16 @@ async function exportToEpub(options) {
282
443
  fs.writeFileSync(mainContentPath, mainContent, "utf-8");
283
444
  // 8. Prepare all HTML files for EPUB generation
284
445
  const allHtmlFiles = [mainContentPath, tocPath, ...htmlFiles];
285
- console.log("All HTML files for EPUB:", allHtmlFiles);
286
446
  // 9. Generate EPUB using pandoc
287
- console.log("Generating EPUB file...");
447
+ console.log("📖 Generating EPUB file...");
288
448
  const epubPath = path.join(epubOutDir, `${courseSlug}.epub`);
289
- await generateEpub(allHtmlFiles, epubPath, metadata);
449
+ await generateEpub(allHtmlFiles, epubPath, metadata, epubMetadata, coverImagePath);
290
450
  console.log("EPUB generated successfully:", epubPath);
291
451
  // Clean up temporary files
292
452
  console.log("Cleaning up temporary files...");
293
453
  rimraf.sync(path.join(epubOutDir, "html"));
294
454
  rimraf.sync(path.join(epubOutDir, "exercises"));
295
- rimraf.sync(path.join(epubOutDir, ".learn"));
455
+ rimraf.sync(path.join(epubOutDir, "learn"));
296
456
  console.log("EPUB export completed successfully");
297
457
  return epubPath;
298
458
  }
@@ -1,3 +1,3 @@
1
1
  export { exportToScorm } from "./scorm";
2
2
  export { exportToEpub } from "./epub";
3
- export { ExportFormat, ExportOptions } from "./types";
3
+ export { ExportFormat, ExportOptions, EpubMetadata } from "./types";
@@ -6,6 +6,13 @@ export interface ExportOptions {
6
6
  outDir: string;
7
7
  language?: string;
8
8
  }
9
+ export interface EpubMetadata {
10
+ creator: string;
11
+ publisher: string;
12
+ title: string;
13
+ rights: string;
14
+ lang: string;
15
+ }
9
16
  export interface CourseMetadata {
10
17
  title: string;
11
18
  description?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@learnpack/learnpack",
3
3
  "description": "Seamlessly build, sell and/or take interactive & auto-graded tutorials, start learning now or build a new tutorial to your audience.",
4
- "version": "5.0.277",
4
+ "version": "5.0.279",
5
5
  "author": "Alejandro Sanchez @alesanchezr",
6
6
  "contributors": [
7
7
  {
@@ -1952,9 +1952,10 @@ export default class ServeCommand extends SessionCommand {
1952
1952
  }
1953
1953
  })
1954
1954
 
1955
- app.get("/export/:course_slug/:format", async (req, res) => {
1955
+ // Export endpoint (POST) - supports both SCORM and EPUB
1956
+ app.post("/export/:course_slug/:format", async (req, res) => {
1956
1957
  const { course_slug, format } = req.params
1957
- const { language } = req.query
1958
+ const { language = "en", metadata } = req.body
1958
1959
 
1959
1960
  try {
1960
1961
  let outputPath: string
@@ -1969,18 +1970,38 @@ export default class ServeCommand extends SessionCommand {
1969
1970
  })
1970
1971
  filename = `${course_slug}-scorm.zip`
1971
1972
  } else if (format === "epub") {
1972
- outputPath = await exportToEpub({
1973
- courseSlug: course_slug,
1974
- format: "epub",
1975
- bucket,
1976
- outDir: path.join(__dirname, "../output/directory"),
1977
- language: (language as string) || "en",
1978
- })
1973
+ console.log("EPUB export", metadata)
1974
+ // Validate required metadata for EPUB
1975
+ if (
1976
+ !metadata ||
1977
+ !metadata.creator ||
1978
+ !metadata.publisher ||
1979
+ !metadata.title ||
1980
+ !metadata.rights ||
1981
+ !metadata.lang
1982
+ ) {
1983
+ console.log("Missing required metadata for EPUB export", metadata)
1984
+ return res.status(400).json({
1985
+ error: "Missing required metadata for EPUB export",
1986
+ required: ["creator", "publisher", "title", "rights", "lang"],
1987
+ })
1988
+ }
1989
+
1990
+ outputPath = await exportToEpub(
1991
+ {
1992
+ courseSlug: course_slug,
1993
+ format: "epub",
1994
+ bucket,
1995
+ outDir: path.join(__dirname, "../output/directory"),
1996
+ language: language,
1997
+ },
1998
+ metadata
1999
+ )
1979
2000
  filename = `${course_slug}.epub`
1980
2001
  } else {
1981
- return res
1982
- .status(400)
1983
- .json({ error: "Invalid format. Supported formats: scorm, epub" })
2002
+ return res.status(400).json({
2003
+ error: "Invalid format. Supported formats: scorm, epub",
2004
+ })
1984
2005
  }
1985
2006
 
1986
2007
  // Send the file and clean up
@@ -1989,6 +2010,12 @@ export default class ServeCommand extends SessionCommand {
1989
2010
  // Clean up the generated file
1990
2011
  if (fs.existsSync(outputPath)) {
1991
2012
  fs.unlinkSync(outputPath)
2013
+ if (format === "epub") {
2014
+ const tempDir = path.dirname(outputPath)
2015
+ if (fs.existsSync(tempDir)) {
2016
+ rimraf.sync(tempDir)
2017
+ }
2018
+ }
1992
2019
  }
1993
2020
  })
1994
2021
  } catch (error: any) {
@@ -0,0 +1,23 @@
1
+ ---
2
+ tiempoDeLectura:
3
+ minutos: 1
4
+ palabras: 225
5
+ fkglResultado: 11.55
6
+ ---
7
+
8
+ # `00.0` - Bienvenido a la Creación de Avatares con HeyGen
9
+
10
+ ¡Hola, futuro creador de avatares! 🎉 ¿Estás listo para adentrarte en el emocionante mundo de la creación de videos impulsados por IA? En solo 30 minutos, te embarcarás en un viaje para crear tu propio avatar digital usando HeyGen, una plataforma de vanguardia que hace que la producción de videos sea divertida y accesible. Ya seas creador de contenido, educador o simplemente tengas curiosidad por las herramientas de IA, este curso es tu puerta de entrada para crear videos atractivos y personalizados con facilidad.
11
+
12
+ Esto es lo que lograrás: comprender los conceptos básicos de HeyGen, configurar tu cuenta, crear un avatar único y producir tu primer video. Este curso está estructurado en módulos breves para guiarte paso a paso. ¡Vamos a sumergirnos y desatar tu creatividad—haz clic para comenzar!
13
+
14
+ ### Lo que aprenderás en este curso
15
+ - **Conceptos básicos de HeyGen**: Familiarízate con la plataforma y sus potentes funciones.
16
+ - **Creación de avatares**: Construye una versión digital de ti mismo o un personaje personalizado.
17
+ - **Producción de videos**: Usa tu avatar para crear videos de aspecto profesional sin esfuerzo.
18
+ - **Exploración**: Descubre herramientas adicionales para mejorar tu contenido.
19
+
20
+ ### ¿Por qué HeyGen?
21
+ HeyGen simplifica la creación de videos aprovechando la IA, ahorrándote tiempo y recursos mientras ofrece resultados de alta calidad. Perfecto para principiantes, esta herramienta abre un sinfín de posibilidades para contar historias y comunicarte.
22
+
23
+ No esperemos más—continúa a la siguiente lección para explorar HeyGen y comenzar tu aventura creando avatares.