Skip to content

Commit 8791447

Browse files
committed
Update to support slide preview in both mode
1 parent 0f4f270 commit 8791447

5 files changed

Lines changed: 92 additions & 13 deletions

File tree

public/css/extra.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@
8181
}
8282

8383
.ui-infobar {
84+
position: relative;
85+
z-index: 2;
8486
max-width: 758px;
8587
margin-top: 25px;
8688
margin-bottom: -25px;

public/css/slide-preview.css

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
.markdown-body.slides {
2+
position: relative;
3+
z-index: 1;
4+
color: #222;
5+
}
6+
7+
.markdown-body.slides::before {
8+
content: '';
9+
display: block;
10+
position: absolute;
11+
top: 0;
12+
left: 0;
13+
right: 0;
14+
bottom: 0;
15+
z-index: -1;
16+
background-color: currentColor;
17+
box-shadow: 0 0 0 50vw;
18+
}
19+
20+
.markdown-body.slides section[data-markdown] {
21+
position: relative;
22+
margin-bottom: 1.5em;
23+
background-color: #fff;
24+
text-align: center;
25+
}
26+
27+
.markdown-body.slides section[data-markdown]::before {
28+
content: '';
29+
display: block;
30+
padding-bottom: 56.23%;
31+
}
32+
33+
.markdown-body.slides section[data-markdown] div:first-child {
34+
position: absolute;
35+
top: 50%;
36+
left: 1em;
37+
right: 1em;
38+
transform: translateY(-50%);
39+
max-height: 100%;
40+
overflow: hidden;
41+
}
42+
43+
.markdown-body.slides section[data-markdown] ul {
44+
display: inline-block;
45+
}
46+
47+
.markdown-body.slides > section > section + section::after {
48+
content: '';
49+
position: absolute;
50+
top: -1.5em;
51+
right: 1em;
52+
height: 1.5em;
53+
border: 3px solid #777;
54+
}

public/js/index.js

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2914,18 +2914,39 @@ function updateViewInner() {
29142914
var lastMeta = md.meta;
29152915
md.meta = {};
29162916
var rendered = md.render(value);
2917-
// only render again when meta changed
2918-
if (JSON.stringify(md.meta) != JSON.stringify(lastMeta)) {
2919-
parseMeta(md, ui.area.codemirror, ui.area.markdown, $('#toc'), $('#toc-affix'));
2920-
rendered = md.render(value);
2921-
}
2922-
// prevent XSS
2923-
rendered = preventXSS(rendered);
2924-
var result = postProcess(rendered).children().toArray();
2925-
partialUpdate(result, lastResult, ui.area.markdown.children().toArray());
2926-
if (result && lastResult && result.length != lastResult.length)
2927-
updateDataAttrs(result, ui.area.markdown.children().toArray());
2928-
lastResult = $(result).clone();
2917+
if (md.meta.type && md.meta.type === 'slide') {
2918+
var slideOptions = {
2919+
separator: '^(\r\n?|\n)---(\r\n?|\n)$',
2920+
verticalSeparator: '^(\r\n?|\n)----(\r\n?|\n)$'
2921+
};
2922+
var slides = RevealMarkdown.slidify(editor.getValue(), slideOptions);
2923+
ui.area.markdown.html(slides);
2924+
RevealMarkdown.initialize();
2925+
// prevent XSS
2926+
ui.area.markdown.html(preventXSS(ui.area.markdown.html()));
2927+
ui.area.markdown.addClass('slides');
2928+
syncscroll = false;
2929+
checkSyncToggle();
2930+
} else {
2931+
if (lastMeta.type && lastMeta.type === 'slide') {
2932+
refreshView();
2933+
ui.area.markdown.removeClass('slides');
2934+
syncscroll = true;
2935+
checkSyncToggle();
2936+
}
2937+
// only render again when meta changed
2938+
if (JSON.stringify(md.meta) != JSON.stringify(lastMeta)) {
2939+
parseMeta(md, ui.area.codemirror, ui.area.markdown, $('#toc'), $('#toc-affix'));
2940+
rendered = md.render(value);
2941+
}
2942+
// prevent XSS
2943+
rendered = preventXSS(rendered);
2944+
var result = postProcess(rendered).children().toArray();
2945+
partialUpdate(result, lastResult, ui.area.markdown.children().toArray());
2946+
if (result && lastResult && result.length != lastResult.length)
2947+
updateDataAttrs(result, ui.area.markdown.children().toArray());
2948+
lastResult = $(result).clone();
2949+
}
29292950
finishView(ui.area.markdown);
29302951
autoLinkify(ui.area.markdown);
29312952
deduplicatedHeaderId(ui.area.markdown);

public/views/foot.ejs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,5 @@
7777
<script src="<%- url %>/js/render.js" defer></script>
7878
<script src="<%- url %>/js/history.js" defer></script>
7979
<script src="<%- url %>/js/index.js" defer></script>
80-
<script src="<%- url %>/js/syncscroll.js" defer></script>
80+
<script src="<%- url %>/js/syncscroll.js" defer></script>
81+
<script src="<%- url %>/js/reveal-markdown.js" defer></script>

public/views/head.ejs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<link rel="stylesheet" href="<%- url %>/css/markdown.css">
3939
<link rel="stylesheet" href="<%- url %>/css/index.css">
4040
<link rel="stylesheet" href="<%- url %>/css/extra.css">
41+
<link rel="stylesheet" href="<%- url %>/css/slide-preview.css">
4142
<link rel="stylesheet" href="<%- url %>/css/site.css">
4243
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
4344
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->

0 commit comments

Comments
 (0)