@liascript/exporter 2.5.7--0.10.30 → 2.6.0--0.10.30

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 (32) hide show
  1. package/README.md +165 -3
  2. package/dist/assets/scorm1.2/SCORM1.2.0da8e8ee.js +1 -0
  3. package/dist/assets/scorm1.2/SCORM1.2.e32438b5.js +1 -0
  4. package/dist/assets/scorm1.2/index.3f87aa11.js +1 -0
  5. package/dist/assets/scorm1.2/index.4a92e335.js +1 -0
  6. package/dist/assets/scorm1.2/index.607bde0c.js +1 -0
  7. package/dist/assets/scorm1.2/index.c71d23fb.js +1 -0
  8. package/dist/assets/scorm1.2/index.html +1 -1
  9. package/dist/assets/scorm2004/SCORM2004.0f5b6db9.js +1 -0
  10. package/dist/assets/scorm2004/SCORM2004.d623c532.js +1 -0
  11. package/dist/assets/scorm2004/index.250ec73b.js +1 -0
  12. package/dist/assets/scorm2004/index.2ed9b743.js +1 -0
  13. package/dist/assets/scorm2004/index.3f87aa11.js +1 -0
  14. package/dist/assets/scorm2004/index.c71d23fb.js +1 -0
  15. package/dist/assets/scorm2004/index.html +1 -1
  16. package/dist/index.js +1 -1
  17. package/package.json +3 -1
  18. package/src/export/helper.ts +24 -1
  19. package/src/export/rdf.ts +227 -0
  20. package/src/index.ts +27 -3
  21. package/dist/assets/scorm1.2/SCORM1.2.24fa74ce.js +0 -1
  22. package/dist/assets/scorm1.2/SCORM1.2.a747c359.js +0 -1
  23. package/dist/assets/scorm1.2/index.2cc4646a.js +0 -1
  24. package/dist/assets/scorm1.2/index.37afd3c6.js +0 -1
  25. package/dist/assets/scorm1.2/index.4890a134.js +0 -1
  26. package/dist/assets/scorm1.2/index.f7bddd51.js +0 -1
  27. package/dist/assets/scorm2004/SCORM2004.1d75baac.js +0 -1
  28. package/dist/assets/scorm2004/SCORM2004.ed1a5e57.js +0 -1
  29. package/dist/assets/scorm2004/index.4890a134.js +0 -1
  30. package/dist/assets/scorm2004/index.7f715788.js +0 -1
  31. package/dist/assets/scorm2004/index.9afd38f6.js +0 -1
  32. package/dist/assets/scorm2004/index.f7bddd51.js +0 -1
package/README.md CHANGED
@@ -134,6 +134,15 @@ Project settings:
134
134
  --project-category-blur Enable this and the categories will be blurred instead of deleted.
135
135
  --project-generate-pdf PDFs are automatically generated and added to every card.
136
136
  --project-generate-cache Only generate new files, if they do not exist.
137
+
138
+ RDF settings:
139
+
140
+ --rdf-format Output format n-quads, json-ld (defaults to json-ld).
141
+ --rdf-preview Output the result to the console.
142
+ --rdf-url Refer to an external URL when parsing a local project.
143
+ --rdf-type Course frm schmema.org is applied as default, overwrite this with EducationalResource, etc.
144
+ --rdf-license Add a license-URL, otherwise if url was provided as input, this will check for an existing LICENSE file.
145
+ --rdf-educationalLevel Typically beginner, intermediate or advanced, and formal sets of level indicators.
137
146
  ```
138
147
 
139
148
  ### SCORM1.2
@@ -180,7 +189,7 @@ If you want to use text2speech, you will have to register your website (where
180
189
  the scorm package will be served) at <https://responsivevoice.org/> ... it is free
181
190
  for educational and non commercial purposes. After your registration, you will
182
191
  get a key in the format of `KluQksUs`. To inject this key into your package,
183
- simly add the key as a paramter:
192
+ simply add the key as a parameter:
184
193
 
185
194
  ``` shell
186
195
  $ liaex -i project/README.md --format scorm1.2 --key KluQksUs --output rockOn
@@ -189,12 +198,12 @@ $ liaex -i project/README.md --format scorm1.2 --key KluQksUs --output rockOn
189
198
 
190
199
  __Mastery Score `--scorm-masteryScore`__
191
200
 
192
- You can define the percentage of quizzes and surveys a student had to fullfill
201
+ You can define the percentage of quizzes and surveys a student had to fullfil
193
202
  in order to accomplish or pass the course by adding the `--scorm-masteryScore`
194
203
  parameter. Just set it to 0 to allow all to pass the course, otherwise choose a
195
204
  value between 0 and 100. All quizzes and surveys are treated equally, thus if
196
205
  your course contains 10 quizzes, every quiz counts as 10%. If you do not set
197
- this paramter, a default value of 80 percent is used.
206
+ this parameter, a default value of 80 percent is used.
198
207
 
199
208
  ``` shell
200
209
  $ liaex -i project/README.md --format scorm1.2 --scorm-masteryScore 0 --output rockOn
@@ -674,6 +683,159 @@ Such as, for which projects you want to generate a pdf and pass also all additio
674
683
  Simply pass all arguments as `arguments` with the long name and without the starting dashes.
675
684
  This way you can generate a very detailed project configuration and overview.
676
685
 
686
+
687
+ ### RDF & JSON-LD
688
+
689
+ The LiaScript metainformation can be exported to RDF, either as json-ld or as n-quads. The option `--pdf-preview` generates a console output that can be used to inspect the result. Otherwise the result is stored in a file, defined by `-o`, the file-ending is either `.jsonld` or `.np`, depending on the `--rdf-format`
690
+
691
+ ``` shell
692
+ liaex --format rdf --rdf-preview -i https://raw.githubusercontent.com/liaScript/docs/master/README.md
693
+
694
+ {
695
+ "@context": "http://schema.org",
696
+ "@id": "https://raw.githubusercontent.com/liaScript/docs/master/README.md",
697
+ "@type": "Course",
698
+ "author": {
699
+ "@type": "Person",
700
+ "email": "LiaScript@web.de",
701
+ "name": "André Dietrich"
702
+ },
703
+ "description": "This document shall provide an entire compendium and course on the development of Open-courSes with [LiaScript](https://LiaScript.github.io). As the language and the systems grows, also this document will be updated. Feel free to fork or copy it, translations are very welcome...",
704
+ "image": {
705
+ "@type": "ImageObject",
706
+ "url": "https://liascript.github.io/img/bg-showcase-1.jpg"
707
+ },
708
+ "inLanguage": "en",
709
+ "name": "LiaScript",
710
+ "url": "https://LiaScript.github.io/course/?https://raw.githubusercontent.com/liaScript/docs/master/README.md",
711
+ "version": "22.0.2"
712
+ }
713
+ ```
714
+
715
+ The result as n-quads looks like this:
716
+
717
+ ``` shell
718
+ liaex --format rdf --rdf-preview --rdf-format n-quads -i https://raw.githubusercontent.com/liaScript/docs/master/README.md
719
+
720
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/author> _:b0 .
721
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/description> "This document shall provide an entire compendium and course on the development of Open-courSes with [LiaScript](https://LiaScript.github.io). As the language and the systems grows, also this document will be updated. Feel free to fork or copy it, translations are very welcome..." .
722
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/image> _:b1 .
723
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/inLanguage> "en" .
724
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/name> "LiaScript" .
725
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/url> "https://LiaScript.github.io/course/?https://raw.githubusercontent.com/liaScript/docs/master/README.md" .
726
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://schema.org/version> "22.0.2" .
727
+ <https://raw.githubusercontent.com/liaScript/docs/master/README.md> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Course> .
728
+ _:b0 <http://schema.org/email> "LiaScript@web.de" .
729
+ _:b0 <http://schema.org/name> "André Dietrich" .
730
+ _:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/Person> .
731
+ _:b1 <http://schema.org/url> "https://liascript.github.io/img/bg-showcase-1.jpg" .
732
+ _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://schema.org/ImageObject> .
733
+ ```
734
+
735
+ If you are working on a local repository and you want to add the remote URL, you can specify `--rdf-url` and run it with a local file as input:
736
+
737
+ ``` shell
738
+ liaex --format rdf --rdf-preview -i ../LiaBooks/docs/README.md --rdf-url https://raw.githubusercontent.com/liaScript/docs/master/README.md
739
+
740
+ {
741
+ "@context": "http://schema.org",
742
+ "@id": "https://raw.githubusercontent.com/liaScript/docs/master/README.md",
743
+ "@type": "Course",
744
+ "author": {
745
+ "@type": "Person",
746
+ "email": "LiaScript@web.de",
747
+ "name": "André Dietrich"
748
+ },
749
+ "description": "This document shall provide an entire compendium and course on the development of Open-courSes with [LiaScript](https://LiaScript.github.io). As the language and the systems grows, also this document will be updated. Feel free to fork or copy it, translations are very welcome...",
750
+ "image": {
751
+ "@type": "ImageObject",
752
+ "url": "https://liascript.github.io/img/bg-showcase-1.jpg"
753
+ },
754
+ "inLanguage": "en",
755
+ "name": "LiaScript",
756
+ "url": "https://LiaScript.github.io/course/?https://raw.githubusercontent.com/liaScript/docs/master/README.md",
757
+ "version": "22.0.2"
758
+ }
759
+ ```
760
+
761
+ ---
762
+
763
+ Local course but without `--rdf-url`
764
+
765
+ ```
766
+ liaex --format rdf --rdf-preview -i ../LiaBooks/docs/README.md
767
+
768
+ {
769
+ "@context": "http://schema.org",
770
+ "@type": "Course",
771
+ "author": {
772
+ "@type": "Person",
773
+ "email": "LiaScript@web.de",
774
+ "name": "André Dietrich"
775
+ },
776
+ "description": "This document shall provide an entire compendium and course on the development of Open-courSes with [LiaScript](https://LiaScript.github.io). As the language and the systems grows, also this document will be updated. Feel free to fork or copy it, translations are very welcome...",
777
+ "image": {
778
+ "@type": "ImageObject",
779
+ "url": "https://liascript.github.io/img/bg-showcase-1.jpg"
780
+ },
781
+ "inLanguage": "en",
782
+ "name": "LiaScript",
783
+ "version": "22.0.2"
784
+ }
785
+ ```
786
+
787
+ * `--rdf-type`: By default this type of resource is associated with `Course`, but you can use this param if you want to define `EducationalResource` or something else...
788
+ * `--rdf-educationalLevel`: This is currently not defined, but can be injected, typically these are beginner, intermediate, advanced, ...
789
+ * `--rdf-license`: Use this to specify the URL of the associated license to your course. This tool will automatically check if there is a LICENSE file in your project root and add this.
790
+
791
+ #### What LiaScript meta-information is used
792
+
793
+ ``` markdown
794
+ <!--
795
+ author: Your Name
796
+ email: author@email.com
797
+ comment: Some basic information about your course
798
+ version: 12.0.2
799
+ logo: https://someimageURL.jpg
800
+ tags: keyword 1, keyword 2, keyword 3
801
+ language: en
802
+ -->
803
+
804
+ # Title of the course
805
+ ...
806
+
807
+ ```
808
+
809
+ This will be translated to:
810
+
811
+ ``` json
812
+ {
813
+ "@context": "http://schema.org",
814
+ "@id": "https://raw.githubusercontent.com/.../master/README.md",
815
+ "@type": "Course",
816
+ "author": {
817
+ "@type": "Person",
818
+ "email": "author@email.com",
819
+ "name": "Your Name"
820
+ },
821
+ "description": "Some basic information about your course",
822
+ "image": {
823
+ "@type": "ImageObject",
824
+ "url": "https://someimageURL.jpg"
825
+ },
826
+ "inLanguage": "en",
827
+ "name": "Title of the course",
828
+ "url": "https://LiaScript.github.io/course/?https://raw.githubusercontent.com/.../master/README.md",
829
+ "version": "12.0.2",
830
+ "keywords": [
831
+ "keyword 1",
832
+ "keyword 2",
833
+ "keyword 3"
834
+ ]
835
+ }
836
+ ```
837
+
838
+
677
839
  ## TODOs & Contributions
678
840
 
679
841
  * Further exporter
@@ -0,0 +1 @@
1
+ !function(){function t(t,e,n,o){Object.defineProperty(t,e,{get:n,set:o,enumerable:!0,configurable:!0})}var e=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire55a5;e.register("gyRZo",(function(n,o){t(n.exports,"Connector",(function(){return l}));var i=e("kxanC"),r=e("hWDD9"),a=e("cksMj"),s=e("giCK6"),u=e("irPpa"),c=e("aOvOw");var l=function(t){"use strict";(0,a.default)(n,t);var e=(0,s.default)(n);function n(){var t;return(0,i.default)(this,n),t=e.call(this),console.warn("Hello, this is LiaScript from within a SCORM 1.2 package. You should definitely try out the SCORM 2004 exporter, since this one cannot be used to store states or any kind of progress. The only thing that is stores, is currently the user location...\n\nIF YOU ARE AN ELABORATE AND EXPERIENCED SCORM DEVELOPER?\n========================================================\n\nAnd you want to help us, to extend this service, please contact us via LiaScript@web.de\n\nHava fun ;-)"),window.top&&window.top.API&&(t.scorm=window.top.API,console.log("LMSInitialize",t.scorm.LMSInitialize("")),t.location=function(t){try{return JSON.parse(t)}catch(t){}return null}(t.scorm.LMSGetValue("cmi.core.lesson_location")),null===t.location&&t.slide(0)),t}return(0,r.default)(n,[{key:"open",value:function(t,e,n){null!==this.location&&window.LIA.goto(this.location)}},{key:"slide",value:function(t){this.location=t,this.scorm&&(this.scorm.LMSSetValue("cmi.core.lesson_location",JSON.stringify(t)),this.scorm.LMSCommit(""))}},{key:"countInteractions",value:function(){if(!this.scorm)return null;var t=parseInt(this.scorm.LMSGetValue("cmi.interactions._count"));return t||null}},{key:"setInteraction",value:function(t,e){if(this.scorm)return e.length<=256?(this.scorm.LMSSetValue("cmi.interactions.".concat(t,".id"),e),!0):(this.scorm.LMSSetValue("cmi.interactions.".concat(t,".id"),"Objective could not be stored, content exceeds 256Bytes!"),!1)}},{key:"initSettings",value:function(t){return c.Settings.init(t,!1,this.setSettings)}},{key:"setSettings",value:function(t){this.write("cmi.suspend_data",JSON.stringify(t))}},{key:"getSettings",value:function(){var t="";try{var e;t=(null===(e=this.scorm)||void 0===e?void 0:e.LMSGetValue("cmi.suspend_data"))||null}catch(t){console.warn("cannot write to localStorage")}var n=null;if("string"==typeof t){try{n=JSON.parse(t)}catch(t){console.warn("getSettings =>",t)}n||(n=c.Settings.data),window.innerWidth<=768&&(n.table_of_contents=!1)}return n}},{key:"write",value:function(t,e){this.scorm?(this.scorm.LMSSetValue(t,e),this.scorm.LMSCommit("")):console.warn("SCORM: could not write")}}]),n}(u.Connector)})),e.register("irPpa",(function(n,o){t(n.exports,"Connector",(function(){return l}));var i=e("2swew"),r=e("kxanC"),a=e("hWDD9"),s=e("eQNFO"),u=e("2QbWq"),c=e("aOvOw"),l=function(){"use strict";function t(){(0,r.default)(this,t)}return(0,a.default)(t,[{key:"hasIndex",value:function(){return!1}},{key:"storage",value:function(){return new u.LiaStorage}},{key:"initSettings",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return c.Settings.init(t,e,this.setSettings)}},{key:"setSettings",value:function(t){try{localStorage.setItem(c.Settings.PORT,JSON.stringify(t))}catch(t){console.warn("cannot write to localStorage")}}},{key:"getSettings",value:function(){var t="";try{t=localStorage.getItem(c.Settings.PORT)}catch(t){console.warn("cannot write to localStorage")}var e=null;if("string"==typeof t){try{e=JSON.parse(t)}catch(t){console.warn("getSettings =>",t)}e||(e=c.Settings.data),window.innerWidth<=768&&(e.table_of_contents=!1)}return e}},{key:"open",value:function(t,e,n){}},{key:"load",value:function(t){}},{key:"store",value:function(t){}},{key:"update",value:function(t,e){}},{key:"slide",value:function(t){}},{key:"getIndex",value:function(){}},{key:"deleteFromIndex",value:function(t){}},{key:"storeToIndex",value:function(t){}},{key:"restoreFromIndex",value:function(t,e){}},{key:"reset",value:function(t,e){this.initSettings(null,!0)}},{key:"getFromIndex",value:function(t){return(0,i.default)((function(){return(0,s.__generator)(this,(function(t){return[2,null]}))}))()}}]),t}()})),e.register("2QbWq",(function(n,o){t(n.exports,"LiaStorage",(function(){return s}));var i=e("kxanC"),r=e("hWDD9"),a=e("mBz5n"),s=function(){"use strict";function t(){(0,i.default)(this,t)}return(0,r.default)(t,[{key:"getItems",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];"string"==typeof t&&(t=[t]);for(var e={},n=0;n<t.length;n++){var o=localStorage.getItem(t[n]);e[t[n]]=o?JSON.parse(o):o}return e}},{key:"setItems",value:function(t){this._setLocal(t)}},{key:"_setLocal",value:function(t){var e=!0,n=!1,o=void 0;if("object"==typeof t)try{for(var i,r=Object.entries(t)[Symbol.iterator]();!(e=(i=r.next()).done);e=!0){var s=(0,a.default)(i.value,2),u=s[0],c=s[1];localStorage.setItem(u,JSON.stringify(c))}}catch(t){n=!0,o=t}finally{try{e||null==r.return||r.return()}finally{if(n)throw o}}}}]),t}()}))}();
@@ -0,0 +1 @@
1
+ function t(t,e,n,o){Object.defineProperty(t,e,{get:n,set:o,enumerable:!0,configurable:!0})}var e=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire55a5;e.register("9I2Jm",(function(n,o){t(n.exports,"Connector",(()=>r));var s=e("e32Bb"),i=e("XOp0e");class r extends s.Connector{open(t,e,n){null!==this.location&&window.LIA.goto(this.location)}slide(t){this.location=t,this.scorm&&(this.scorm.LMSSetValue("cmi.core.lesson_location",JSON.stringify(t)),this.scorm.LMSCommit(""))}countInteractions(){if(!this.scorm)return null;let t=parseInt(this.scorm.LMSGetValue("cmi.interactions._count"));return t||null}setInteraction(t,e){if(this.scorm)return e.length<=256?(this.scorm.LMSSetValue(`cmi.interactions.${t}.id`,e),!0):(this.scorm.LMSSetValue(`cmi.interactions.${t}.id`,"Objective could not be stored, content exceeds 256Bytes!"),!1)}initSettings(t,e=!1){return i.Settings.init(t,!1,this.setSettings)}setSettings(t){this.write("cmi.suspend_data",JSON.stringify(t))}getSettings(){let t="";try{var e;t=(null===(e=this.scorm)||void 0===e?void 0:e.LMSGetValue("cmi.suspend_data"))||null}catch(t){console.warn("cannot write to localStorage")}let n=null;if("string"==typeof t){try{n=JSON.parse(t)}catch(t){console.warn("getSettings =>",t)}n||(n=i.Settings.data),window.innerWidth<=768&&(n.table_of_contents=!1)}return n}write(t,e){this.scorm?(this.scorm.LMSSetValue(t,e),this.scorm.LMSCommit("")):console.warn("SCORM: could not write")}constructor(){super(),console.warn("Hello, this is LiaScript from within a SCORM 1.2 package. You should definitely try out the SCORM 2004 exporter, since this one cannot be used to store states or any kind of progress. The only thing that is stores, is currently the user location...\n\nIF YOU ARE AN ELABORATE AND EXPERIENCED SCORM DEVELOPER?\n========================================================\n\nAnd you want to help us, to extend this service, please contact us via LiaScript@web.de\n\nHava fun ;-)"),window.top&&window.top.API&&(this.scorm=window.top.API,console.log("LMSInitialize",this.scorm.LMSInitialize("")),this.location=function(t){try{return JSON.parse(t)}catch(t){}return null}(this.scorm.LMSGetValue("cmi.core.lesson_location")),null===this.location&&this.slide(0))}}})),e.register("e32Bb",(function(n,o){t(n.exports,"Connector",(()=>r));var s=e("4ssuu"),i=e("XOp0e");class r{hasIndex(){return!1}storage(){return new s.LiaStorage}initSettings(t,e=!1){return i.Settings.init(t,e,this.setSettings)}setSettings(t){try{localStorage.setItem(i.Settings.PORT,JSON.stringify(t))}catch(t){console.warn("cannot write to localStorage")}}getSettings(){let t="";try{t=localStorage.getItem(i.Settings.PORT)}catch(t){console.warn("cannot write to localStorage")}let e=null;if("string"==typeof t){try{e=JSON.parse(t)}catch(t){console.warn("getSettings =>",t)}e||(e=i.Settings.data),window.innerWidth<=768&&(e.table_of_contents=!1)}return e}open(t,e,n){}load(t){}store(t){}update(t,e){}slide(t){}getIndex(){}deleteFromIndex(t){}storeToIndex(t){}restoreFromIndex(t,e){}reset(t,e){this.initSettings(null,!0)}async getFromIndex(t){return null}constructor(){}}})),e.register("4ssuu",(function(e,n){t(e.exports,"LiaStorage",(()=>o));class o{getItems(t=[]){"string"==typeof t&&(t=[t]);let e={};for(let n=0;n<t.length;n++){let o=localStorage.getItem(t[n]);e[t[n]]=o?JSON.parse(o):o}return e}setItems(t){this._setLocal(t)}_setLocal(t){if("object"==typeof t)for(const[e,n]of Object.entries(t))localStorage.setItem(e,JSON.stringify(n))}constructor(){}}}));