Loquicom 5 éve
szülő
commit
d7e70cf321
7 módosított fájl, 131 hozzáadás és 30 törlés
  1. 12 0
      index.html
  2. 5 0
      src/data/app.json
  3. 5 0
      src/data/index.json
  4. 4 0
      src/data/list.json
  5. 51 0
      src/exemple.html
  6. 48 30
      src/index.html
  7. 6 0
      src/js/script.js

+ 12 - 0
index.html

@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Loading</title>
+    </head>
+    <body>
+        <h1>Loading...</h1>
+        <script type="text/javascript">
+            document.location = 'src';    
+        </script>
+    </body>
+</html>

+ 5 - 0
src/data/app.json

@@ -0,0 +1,5 @@
+{
+    "id": "app",
+    "title": "Application",
+    "content": "#### blabla...\n```javaSystem.out.println(\"Hello world\");```"
+}

+ 5 - 0
src/data/index.json

@@ -0,0 +1,5 @@
+{
+    "id": "index",
+    "title": "Index",
+    "content": "blabla..."
+}

+ 4 - 0
src/data/list.json

@@ -0,0 +1,4 @@
+[
+    "index",
+    "app"
+]

+ 51 - 0
src/exemple.html

@@ -0,0 +1,51 @@
+<html>
+  <head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <link type="text/css" rel="stylesheet" href="css/material-icons.css" />  
+    <link type="text/css" rel="stylesheet" href="css/materialize.min.css"  media="screen,projection"/>
+    <link rel="stylesheet" type="text/css" href="css/google-code-prettify/desert.css">
+    <title>Titre</title>
+  </head>
+  <body onload="PR.prettyPrint()">
+    <h1>Bonjour</h1>
+    <pre class="prettyprint">
+        public class Loul {
+          // Commentaire
+        }
+    </pre>
+    <h3 data-bind="name"></h3>
+    <h3 data-bind="test"></h3>
+
+    <div data-loop="aze">
+      <h4>Loop</h4>
+      <span data-val="a"></span>
+    </div>
+
+    <input type="hidden" data-model="name" value="nom">
+
+    <script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
+    <script type="text/javascript" src="js/materialize.min.js"></script>
+    <script type="text/javascript" src="js/google-code-prettify/prettify.js"></script>
+    <script type="text/javascript" src="js/binder.js"></script>
+    <script type="text/javascript">
+      var scope = binder({
+        test: 'aze',
+        aze: [
+          {
+            a: 'rty'
+          },
+          {
+            a: 'dfg'
+          }
+        ]
+      });
+
+      looper(scope);
+
+      scope.aze[1].a = 'lol';
+
+      looper(scope);
+    </script>
+  </body>
+</html>

+ 48 - 30
src/index.html

@@ -7,45 +7,63 @@
     <link rel="stylesheet" type="text/css" href="css/google-code-prettify/desert.css">
     <title>Titre</title>
   </head>
-  <body onload="PR.prettyPrint()">
-    <h1>Bonjour</h1>
-    <pre class="prettyprint">
-        public class Loul {
-          // Commentaire
-        }
-    </pre>
-    <h3 data-bind="name"></h3>
-    <h3 data-bind="test"></h3>
-
-    <div data-loop="aze">
-      <h4>Loop</h4>
-      <span data-val="a"></span>
+  <body>
+    
+    <div data-loop="card">
+        <h3 data-val="title"></h3>
+        <p data-val="content"></p>
     </div>
 
-    <input type="hidden" data-model="name" value="nom">
-
-    <script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
     <script type="text/javascript" src="js/materialize.min.js"></script>
     <script type="text/javascript" src="js/google-code-prettify/prettify.js"></script>
+    <script type="text/javascript" src="js/script.js"></script>
     <script type="text/javascript" src="js/binder.js"></script>
+    <script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"></script>
+    <script type="text/javascript" src="../node_modules/marked/marked.min.js"></script> 
+    <script type="text/javascript" src="../node_modules/dompurify/dist/purify.min.js"></script>
     <script type="text/javascript">
-      var scope = binder({
-        test: 'aze',
-        aze: [
-          {
-            a: 'rty'
-          },
-          {
-            a: 'dfg'
-          }
-        ]
-      });
+        var scope;
 
-      looper(scope);
+        $(document).ready(() => {
+            loadData(true).then((data) => {
+                scope = binder({card: data});
+                printContent(scope);        
+            });
+        });
 
-      scope.aze[1].a = 'lol';
+        /**
+         * Load all card present by default
+         * @param boolean toArray (optionnal) send result in array and not in object (default: false)
+         */
+        function loadData(toArray) {
+            toArray = toArray ? toArray : false;
+            const data = toArray ? [] : {};
+            return new Promise(resolve => {
+                $.getJSON('data/list.json', (list) => {
+                    const total = list.length;
+                    let count = 0;
+                    list.forEach(element => {
+                        $.getJSON(`data/${element}.json`, (result) => {
+                            toArray ? data.push(result) : data[result.id] = result;
+                            if (++count === total) {
+                                resolve(data);
+                            }
+                        });
+                    });
+                });
+            });
+        }
 
-      looper(scope);
+        function printContent(scope) {
+            for(element of scope.card) {
+                element.content = element.content.toMarkdown().replace(/code>/g, 'pre>');
+            }
+            looper(scope);
+            for(preTag of $('pre')) {
+                $(preTag).addClass('prettyprint');
+            }
+            PR.prettyPrint();
+        }
     </script>
   </body>
 </html>

+ 6 - 0
src/js/script.js

@@ -0,0 +1,6 @@
+/**
+ * Transform markdown string to html 
+ */
+String.prototype.toMarkdown = function() {
+    return DOMPurify.sanitize(marked(this.toString()));
+}