Skip to content

Commit 8a1b5a6

Browse files
committed
nicer YAML output
1 parent 186816d commit 8a1b5a6

File tree

5 files changed

+48
-20
lines changed

5 files changed

+48
-20
lines changed

caroline/caroline.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,15 @@
99

1010
__all__ = ["Presentation"]
1111

12+
def str_presenter(dumper, data):
13+
if data.count('\n') > 0:
14+
data = "\n".join([line.rstrip() for line in data.splitlines()]) # Remove any trailing spaces, then put it back together again
15+
return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|')
16+
return dumper.represent_scalar('tag:yaml.org,2002:str', data)
17+
18+
yaml.add_representer(str, str_presenter)
19+
yaml.representer.SafeRepresenter.add_representer(str, str_presenter) # to use with safe_dum
20+
1221

1322
class Presentation:
1423
def __init__(
@@ -70,10 +79,10 @@ def spanText(self, markdown_text, fontSize=1):
7079
self.leftPartExists = False
7180

7281
def spanCenterText(self, markdown_text, fontSize=1):
73-
# self.slides[-1] = {"spanCenter":{"text": markdown_text, fontSize: 1}}
74-
self.slides[-1] += self._spanCenter(
75-
self._text(markdown_text), fontSize=fontSize
76-
)
82+
self.slides[-1] = {"spanCenterText": markdown_text, "fontSize": 1}
83+
# self.slides[-1] += self._spanCenter(
84+
# self._text(markdown_text), fontSize=fontSize
85+
# )
7786
self.leftPartExists = False
7887

7988
def leftImage(
@@ -533,7 +542,7 @@ def save(self, fileName):
533542

534543
d = []
535544
for i, slideHTML in enumerate(self.slides):
536-
if type("slides") is dict:
545+
if type(slideHTML) is dict:
537546
d.append(slideHTML)
538547
else:
539548
d.append(
@@ -569,11 +578,13 @@ def save(self, fileName):
569578
else -1,
570579
"startPresentation": True,
571580
},
572-
file
581+
file,
582+
default_flow_style=False, default_style=None, indent=2
573583
)
574584
for slide in d:
575585
file.write("---\n")
576-
yaml.safe_dump(slide, file, default_style="|")
586+
587+
yaml.safe_dump(slide, file, default_flow_style=False, default_style=None, indent=2)
577588

578589
with open(fileName, "w") as file:
579590
file.write(
@@ -601,10 +612,9 @@ def save(self, fileName):
601612
)
602613
fileNameAudience = fileName.replace(".html", "_audience.yaml")
603614
with open(fileNameAudience, "w") as file:
604-
yaml.dump(
615+
yaml.safe_dump(
605616
{
606617
"pageTitle": "Caroline presentation",
607-
"data": d,
608618
"logo": l,
609619
"username": "Audience",
610620
"presenter": False,
@@ -619,8 +629,11 @@ def save(self, fileName):
619629
else -1,
620630
"startPresentation": True,
621631
},
622-
file,
632+
file
623633
)
634+
for slide in d:
635+
file.write("---\n")
636+
yaml.safe_dump(slide, file)
624637
print(
625638
"Presentation copy for distribution to Audience is saved in %s"
626639
% fileNameAudience

caroline/html/index.html

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,14 +218,16 @@ <h2 id="confirmmessage"></h2>
218218
fetch(initDataLocation)
219219
.then(response => response.text())
220220
.then((data) => {
221-
const d = YAML.parseAllDocuments(data);
222-
const init = d[0];
223-
const data = d.slice(1);
221+
const parse_data = YAML.parseAllDocuments(data).map(function(e){
222+
return e.toJSON();
223+
});
224+
console.log(parse_data);
225+
const init = parse_data[0];
224226

225227
window.roundTable = false; init.roundTable; //false;
226228
window.username = init.username;
227229
window.room = null; //init.room; // roundtable room
228-
window.data = data;
230+
window.data = {"slides": parse_data.slice(1)};
229231
window.logoURL = init.logo;
230232
window.leftHanded = init.leftHanded;
231233
window.drawingHelp = init.drawingHelp;

caroline/html/js/caroline.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import markdownItMathjax from "markdown-it-mathjax";
2525
import markdownit from "markdown-it";
2626
import { nbv_constructor } from "./nbv.js";
2727
import { jsPDF } from "jspdf";
28+
import { yaml2html } from "./yaml2html.js"
2829

2930

3031
function resize() {
@@ -3361,7 +3362,7 @@ function showSlide(doNotPushHistory = false) {
33613362

33623363

33633364
var l;
3364-
if (data["slides"][slideIndex]["style"] != "") {
3365+
if ("style" in data["slides"][slideIndex] && data["slides"][slideIndex]["style"] != "") {
33653366
l = "style='" + data["slides"][slideIndex]["style"].replace("'", '"') + "'";
33663367
}
33673368
else if (logoURL === null) {
@@ -3374,7 +3375,7 @@ function showSlide(doNotPushHistory = false) {
33743375
var d = document.getElementById("slidespace");
33753376
d.innerHTML =
33763377
"<div class='slide'" + l + ">"
3377-
+ data["slides"][slideIndex]["html"]
3378+
+ yaml2html(data["slides"][slideIndex])
33783379
+ "</div>";
33793380

33803381
if (data["slides"][slideIndex]["textAnnotation"] != null) {

caroline/html/js/yaml2html.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
3+
export function yaml2html(slide ){
4+
console.log(slide);
5+
if ("html" in slide){
6+
return slide["html"];
7+
}
8+
else if ("spanCenterText" in slide){
9+
return slide["spanCenterText"];
10+
}
11+
}
12+

caroline/preview/__main__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ def end_headers(self):
2727
http.server.SimpleHTTPRequestHandler.end_headers(self)
2828

2929

30-
def server(port):
31-
httpd = socketserver.TCPServer(("", port), HTTPRequestHandler)
30+
def server():
31+
httpd = socketserver.TCPServer(("", 0), HTTPRequestHandler)
3232
return httpd
3333

3434

3535
if __name__ == "__main__":
36-
port = PORT
37-
httpd = server(port)
36+
httpd = server()
37+
host, port = httpd.server_address
3838
try:
3939
os.chdir(os.getcwd())
4040
print("\n = = = = = = CAROLINE presentation = = = = =")

0 commit comments

Comments
 (0)