From 6a0cee20feeae79b6afe12dfeffedfcc3c1ba3c2 Mon Sep 17 00:00:00 2001
From: Micah Godbolt
Date: Fri, 1 Mar 2019 15:56:55 -0800
Subject: [PATCH] updated js demo readme
---
markdownReadme/src/index.js | 53 +++++++++++++++++++++
step1-01/index.html | 1 -
step1-01/js-demo/README.md | 92 +++++++++++++++++++++++++++++++------
step1-02/exercise/README.md | 16 ++++---
step1-03/exercise/README.md | 6 ++-
step1-04/demo/README.md | 77 +++++++++++++++++++++----------
step1-04/demo/src/index.tsx | 3 +-
7 files changed, 197 insertions(+), 51 deletions(-)
create mode 100644 markdownReadme/src/index.js
diff --git a/markdownReadme/src/index.js b/markdownReadme/src/index.js
new file mode 100644
index 0000000..1771fec
--- /dev/null
+++ b/markdownReadme/src/index.js
@@ -0,0 +1,53 @@
+import marked, { Renderer } from 'marked';
+import hljs from 'highlight.js/lib/highlight';
+import javascript from 'highlight.js/lib/languages/javascript';
+import typescript from 'highlight.js/lib/languages/typescript';
+
+hljs.registerLanguage('javascript', javascript);
+hljs.registerLanguage('typescript', typescript);
+
+async function run() {
+ const div = document.getElementById('markdownReadme');
+
+ // Create your custom renderer.
+ const renderer = new Renderer();
+ renderer.code = (code, language) => {
+ // Check whether the given language is valid for highlight.js.
+ const validLang = !!(language && hljs.getLanguage(language));
+ // Highlight only if the language is valid.
+ const highlighted = validLang ? hljs.highlight(language, code).value : code;
+ // Render the highlighted code with `hljs` class.
+ return `${highlighted}
`;
+ };
+ marked.setOptions({ renderer });
+
+ if (div) {
+ const response = await fetch(div.dataset['src'] || '../README.md');
+ const markdownText = await response.text();
+ div.innerHTML = marked(markdownText, { baseUrl: '../' });
+ restoreScroll(div);
+
+ div.addEventListener('scroll', evt => {
+ saveScroll(div);
+ });
+
+ window.addEventListener('resize', evt => {
+ saveScroll(div);
+ });
+ }
+}
+
+const scrollKey = `${window.location.pathname}_scrolltop`;
+
+function saveScroll(div) {
+ window.localStorage.setItem(scrollKey, String(div.scrollTop));
+}
+
+function restoreScroll(div) {
+ const scrollTop = window.localStorage.getItem(scrollKey);
+ if (scrollTop) {
+ div.scrollTop = parseInt(scrollTop);
+ }
+}
+
+run();
diff --git a/step1-01/index.html b/step1-01/index.html
index 05c4cb9..4da5e99 100644
--- a/step1-01/index.html
+++ b/step1-01/index.html
@@ -13,7 +13,6 @@
JS Demo
JS Demo Final
-
+
+
+
+