askclass-course-theme 0.13.5 → 0.15.0
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.
- checksums.yaml +4 -4
- data/_config.yml +2 -1
- data/_includes/course.html +20 -5
- data/_includes/footer.html +1 -1
- data/_includes/head/common.html +15 -15
- data/_includes/header.html +2 -2
- data/_includes/segment/index.html +2 -3
- data/_includes/segment/nav.html +5 -5
- data/_includes/session/audio.html +3 -0
- data/_includes/session/header.html +2 -2
- data/_includes/session/next_prev.html +1 -1
- data/_includes/session/sounds.html +6 -0
- data/_layouts/session.html +2 -0
- data/_sass/_base.scss +35 -31
- data/_sass/_default.scss +2 -0
- data/_sass/_essential-audio.scss +177 -0
- data/_sass/_grid.scss +2 -2
- data/_sass/_post.scss +15 -10
- data/_sass/_tab.scss +41 -8
- data/_sass/init.scss +4 -0
- data/assets/audio/appreciation.mp3 +0 -0
- data/assets/css/dialog.scss +5 -1
- data/assets/css/segment.scss +3 -1
- data/assets/css/session.scss +3 -1
- data/assets/js/essential-audio-player.js +10 -0
- data/assets/site.webmanifest +14 -2
- metadata +12 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2c97dd0d0d5e532f5721a54b8a0d003ebfc599c5dd275748d501c863adad803c
|
|
4
|
+
data.tar.gz: 52fc1f6663759fda22c98fa464af849e4989d3f24fc2c2b7ba594805d3f0a3dc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0f7bfdc4e447483a223f7892003e193644ef3e2a2485dfc891b49fe0c0780682507c729a92103073016dd4791cd4c1a6f7fbafa7995cd70b54e3150a87469efc
|
|
7
|
+
data.tar.gz: 1312dd01ae62c1bcd4ae41ad5d15a95a6f97e329fe71e5bdeec647788f6ace425bf8e1da046605cb0032fe2207b804c869c14911ca51ae547130378776bb8126
|
data/_config.yml
CHANGED
|
@@ -26,7 +26,7 @@ acc:
|
|
|
26
26
|
sizes: [ 48, 96, 144, 192, 300, 512 ]
|
|
27
27
|
shortcuts:
|
|
28
28
|
- name: Syllabus
|
|
29
|
-
url:
|
|
29
|
+
url: /session/session-01
|
|
30
30
|
desc: Class syllabus and contact information
|
|
31
31
|
meta:
|
|
32
32
|
apple_icon: "logo-300.png"
|
|
@@ -61,6 +61,7 @@ acc:
|
|
|
61
61
|
- Share+Tech+Mono
|
|
62
62
|
- Lexend
|
|
63
63
|
- Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200
|
|
64
|
+
icon_class: material-symbols-outlined
|
|
64
65
|
|
|
65
66
|
collections_dir: content
|
|
66
67
|
collections:
|
data/_includes/course.html
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
{%- assign course = site.data.course -%}
|
|
2
|
+
|
|
2
3
|
<ul class="grid">
|
|
3
4
|
{%- for segment in course.segments -%}
|
|
4
5
|
{%- assign info = site.data.syllabus[segment] -%}
|
|
5
6
|
{%- if info -%}
|
|
6
7
|
<li class="card-tab {{ info.theme }}">
|
|
7
8
|
<div class="top-bar">{{ info.segment[0] }}</div>
|
|
9
|
+
{%- if info.segment[2] -%}
|
|
10
|
+
<div class="tab icon {{ symbols }}">{{ info.segment[2] }}</div>
|
|
11
|
+
{%- else -%}
|
|
8
12
|
<div class="tab">{{ info.segment[1] }}</div>
|
|
13
|
+
{%- endif -%}
|
|
9
14
|
<div class="header">
|
|
10
15
|
<a href="/segment/{{ segment }}">
|
|
11
16
|
{%- include date_range.html info=info -%}
|
|
12
17
|
</a>
|
|
13
18
|
</div>
|
|
14
|
-
<div class="body">
|
|
19
|
+
<div class="body limit-height">
|
|
15
20
|
{%- if info.desc -%}
|
|
16
21
|
<h4>{{ info.desc }}</h4>
|
|
17
22
|
{%- endif -%}
|
|
@@ -22,20 +27,20 @@
|
|
|
22
27
|
{%- assign session = site.data.sessions[item] -%}
|
|
23
28
|
<div class="item">
|
|
24
29
|
<div class="middle-align">
|
|
25
|
-
<span class="
|
|
30
|
+
<span class="{{ symbols }}">{{ session.icon }}</span>
|
|
26
31
|
{%- if session.url -%}
|
|
27
32
|
<a href="/session/{{ session.url }}" title="{{ session.title }}">
|
|
28
33
|
<h3>{{ session.header }}</h3>
|
|
29
34
|
</a>
|
|
30
35
|
{%- else -%}
|
|
31
|
-
|
|
36
|
+
<h3>{{ session.header }}</h3>
|
|
32
37
|
{%- endif -%}
|
|
33
38
|
</div>
|
|
34
39
|
{%- if session.due -%}
|
|
35
40
|
<small class="due"
|
|
36
41
|
data-date="{{ session.due }}"
|
|
37
42
|
title="Due {{ session.due | date: site.acc.date_format }}">
|
|
38
|
-
<span class="
|
|
43
|
+
<span class="icon {{ symbols }}">alarm_on</span>
|
|
39
44
|
{{ session.due | date: '%b %e' }}
|
|
40
45
|
</small>
|
|
41
46
|
{%- endif -%}
|
|
@@ -52,7 +57,7 @@
|
|
|
52
57
|
<a class="button" href="/segment/{{ segment }}">
|
|
53
58
|
{{ info.title }}
|
|
54
59
|
<span data-date="{{ info.end }}"
|
|
55
|
-
class="middle-align
|
|
60
|
+
class="middle-align rocket {{ symbols }}">rocket_launch</span>
|
|
56
61
|
</a>
|
|
57
62
|
</div>
|
|
58
63
|
</li>
|
|
@@ -78,4 +83,14 @@
|
|
|
78
83
|
ymd2ms(el.dataset.date) < Date.now() &&
|
|
79
84
|
(el.innerText = 'rocket')
|
|
80
85
|
);
|
|
86
|
+
|
|
87
|
+
document.querySelectorAll('.limit-height').forEach(el => {
|
|
88
|
+
const check = () => {
|
|
89
|
+
const atBottom = el.scrollHeight - el.scrollTop <= el.clientHeight + 2;
|
|
90
|
+
el.classList.toggle('has-more', !atBottom);
|
|
91
|
+
};
|
|
92
|
+
check(); // run once on load
|
|
93
|
+
el.addEventListener('scroll', check);
|
|
94
|
+
new ResizeObserver(check).observe(el);
|
|
95
|
+
});
|
|
81
96
|
</script>
|
data/_includes/footer.html
CHANGED
data/_includes/head/common.html
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
{
|
|
2
|
-
{
|
|
3
|
-
{
|
|
4
|
-
{
|
|
5
|
-
{
|
|
1
|
+
{%- assign acc = site.acc %}
|
|
2
|
+
{%- assign desc = page.description | default: site.description | strip_html | strip_newlines %}
|
|
3
|
+
{%- assign families = acc.font_families | join: "&family=" %}
|
|
4
|
+
{%- assign og_image = acc.meta.og_image | prepend: '/assets/' %}
|
|
5
|
+
{%- assign symbols = acc.icon_class | default: 'material-symbols-outlined' -%}
|
|
6
6
|
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
8
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
<meta property="og:description" content="{{ desc }}" />
|
|
23
23
|
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
|
|
24
24
|
<meta property="og:image" content="{{ page.image | default: og_image }}" />
|
|
25
|
-
{
|
|
25
|
+
{%- if acc.twitter %}
|
|
26
26
|
<meta name="twitter:site" content="{{ acc.social.twitter }}" />
|
|
27
27
|
<meta name="twitter:card" content="summary_large_image">
|
|
28
|
-
{% endif
|
|
28
|
+
{% endif -%}
|
|
29
29
|
|
|
30
|
-
<link rel="manifest" href="
|
|
30
|
+
<link rel="manifest" href="/assets/site.webmanifest" />
|
|
31
31
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
|
|
32
32
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
|
|
33
33
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
<link rel="preload" as="style"
|
|
36
36
|
href="https://fonts.googleapis.com/css2?family={{ families }}&display=swap"
|
|
37
37
|
onload='this.onload=null;this.rel="stylesheet"' />
|
|
38
|
-
<link rel="shortcut icon" href="
|
|
39
|
-
<link rel="icon" type="{{ acc.meta.shotcut.type }}" href="
|
|
40
|
-
<link rel="icon" type="image/svg+xml" href="
|
|
38
|
+
<link rel="shortcut icon" href="/assets/{{ acc.meta.shortcut.favicon }}" />
|
|
39
|
+
<link rel="icon" type="{{ acc.meta.shotcut.type }}" href="/assets/{{ acc.meta.shortcut.image }}" />
|
|
40
|
+
<link rel="icon" type="image/svg+xml" href="/assets/{{ acc.logo.image }}" />
|
|
41
41
|
|
|
42
|
-
<link rel="apple-touch-icon" href="
|
|
43
|
-
{
|
|
44
|
-
<link rel="apple-touch-icon" sizes="{{size}}x{{size}}" href="
|
|
45
|
-
{% endfor
|
|
42
|
+
<link rel="apple-touch-icon" href="/assets/{{ acc.meta.apple_icon }}" />
|
|
43
|
+
{%- for size in acc.logo.sizes %}
|
|
44
|
+
<link rel="apple-touch-icon" sizes="{{size}}x{{size}}" href="/assets/logo-square-{{size}}.png" />
|
|
45
|
+
{% endfor -%}
|
data/_includes/header.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<head>
|
|
2
|
-
{
|
|
2
|
+
{% include head/meta.html -%}
|
|
3
3
|
{%- include head/common.html -%}
|
|
4
4
|
{%- if page.collection == 'session' -%}
|
|
5
5
|
{%- if session_data.type == 'Dialog' -%}
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
{%- endif -%}
|
|
10
10
|
{%- else -%}
|
|
11
11
|
<link rel="stylesheet" href="{{ 'assets/css/segment.css' | relative_url }}" />
|
|
12
|
-
{
|
|
12
|
+
{% endif %}
|
|
13
13
|
</head>
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
{%- for item in info.items -%}
|
|
5
5
|
{%- assign session = site.data.sessions[item] -%}
|
|
6
6
|
<li class="card-tab {{ info.theme }}">
|
|
7
|
-
|
|
8
7
|
{%- if session.type -%}
|
|
9
8
|
<div class="top-bar">{{ session.type }}</div>
|
|
10
9
|
{%- elsif session.sequence -%}
|
|
@@ -16,12 +15,12 @@
|
|
|
16
15
|
{%- if session.sequence -%}
|
|
17
16
|
<div class="tab">{{ session.sequence }}</div>
|
|
18
17
|
{%- elsif session.icon -%}
|
|
19
|
-
<div class="tab
|
|
18
|
+
<div class="tab icon {{ symbols }}">{{ session.icon }}</div>
|
|
20
19
|
{%- endif -%}
|
|
21
20
|
|
|
22
21
|
{%- if session.due -%}
|
|
23
22
|
<div class="header">
|
|
24
|
-
<span data-date="{{ session.due }}" class="
|
|
23
|
+
<span data-date="{{ session.due }}" class="{{ symbols }} alarm">alarm_on</span>
|
|
25
24
|
{{ session.due | date: '%b %e, %y' }}
|
|
26
25
|
</div>
|
|
27
26
|
{%- elsif session.type -%}
|
data/_includes/segment/nav.html
CHANGED
|
@@ -17,25 +17,25 @@
|
|
|
17
17
|
{% if include.icon %}
|
|
18
18
|
{{ site.data.syllabus[prev].title }}
|
|
19
19
|
{% endif %}
|
|
20
|
-
<a href="/segment/{{ prev }}" class="
|
|
20
|
+
<a href="/segment/{{ prev }}" class="{{ symbols }} md-48">navigate_before</a>
|
|
21
21
|
{% else %}
|
|
22
22
|
|
|
23
|
-
<span class="
|
|
23
|
+
<span class="{{ symbols }} md-48 md-disabled">navigate_before</span>
|
|
24
24
|
{% endif %}
|
|
25
25
|
|
|
26
26
|
{% if include.icon %}
|
|
27
|
-
<a href="/segment/{{ include.segment }}" class="
|
|
27
|
+
<a href="/segment/{{ include.segment }}" class="{{ symbols }}">calendar_today</a>
|
|
28
28
|
{% else %}
|
|
29
29
|
<a href="/segment/{{ include.segment }}"><h3>{{ site.data.syllabus[include.segment].title }}</h3></a>
|
|
30
30
|
{% endif %}
|
|
31
31
|
|
|
32
32
|
{% if next %}
|
|
33
|
-
<a href="/segment/{{ next }}" class="
|
|
33
|
+
<a href="/segment/{{ next }}" class="{{ symbols }} md-48">navigate_next</a>
|
|
34
34
|
{% if include.icon %}
|
|
35
35
|
{{ site.data.syllabus[next].title }}
|
|
36
36
|
{% endif %}
|
|
37
37
|
{% else %}
|
|
38
|
-
<span class="
|
|
38
|
+
<span class="{{ symbols }} md-48 md-disabled">navigate_next</span>
|
|
39
39
|
{% endif %}
|
|
40
40
|
</div>
|
|
41
41
|
</section>
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
{%- include date_range.html info=segment_data -%}
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
<div class="middle-align">
|
|
18
|
+
<div class="middle-align lesson-group">
|
|
19
19
|
{%- for item in segment_data.items -%}
|
|
20
20
|
{%- assign _info = site.data.sessions[item] -%}
|
|
21
21
|
{%- if _info.sequence -%}
|
|
22
22
|
{%- assign _mso = '' -%}
|
|
23
23
|
{%- else -%}
|
|
24
|
-
{%- assign _mso =
|
|
24
|
+
{%- assign _mso = symbols | append: " icon" -%}
|
|
25
25
|
{%- endif -%}
|
|
26
26
|
|
|
27
27
|
{%- if item == session_id -%}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
{%- if _p %}
|
|
15
15
|
<div class="{{ align }}">
|
|
16
16
|
<span>{{ indicator }}</span>
|
|
17
|
-
<span class="
|
|
17
|
+
<span class="{{ symbols }}">navigate_{{ arrow }}</span>
|
|
18
18
|
</div>
|
|
19
19
|
<a href="/session/{{ _p.url }}">
|
|
20
20
|
{%- if _p.header -%}
|
data/_layouts/session.html
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
{%- include session/images.html images=session_data.images -%}
|
|
18
18
|
{%- include session/points.html -%}
|
|
19
19
|
{%- include session/videos.html videos=session_data.videos -%}
|
|
20
|
+
{%- include session/sounds.html audio=session_data.audio -%}
|
|
20
21
|
{{ content }}
|
|
21
22
|
{%- if page.dialogue -%}
|
|
22
23
|
{%- include session/conversation.html data=page.dialogue-%}
|
|
@@ -28,5 +29,6 @@
|
|
|
28
29
|
{%- include session/content_revealer.html -%}
|
|
29
30
|
{%- include footer.html -%}
|
|
30
31
|
{%- include foot/mathjax.html -%}
|
|
32
|
+
<script async src="/assets/js/essential-audio-player.js"></script>
|
|
31
33
|
</body>
|
|
32
34
|
</html>
|
data/_sass/_base.scss
CHANGED
|
@@ -1,35 +1,39 @@
|
|
|
1
|
+
@use "default";
|
|
2
|
+
|
|
1
3
|
:root {
|
|
2
|
-
--icon-logo: #{
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
--font-
|
|
6
|
-
--font-
|
|
7
|
-
--font-
|
|
8
|
-
--font-
|
|
9
|
-
--font-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
--color-
|
|
13
|
-
--color-
|
|
14
|
-
--color-
|
|
15
|
-
--color-
|
|
16
|
-
--color-
|
|
17
|
-
--color-
|
|
18
|
-
--color-
|
|
19
|
-
--color-
|
|
20
|
-
--color-
|
|
21
|
-
--color-row-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
--color-card-
|
|
25
|
-
--color-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
--grid-
|
|
31
|
-
--
|
|
32
|
-
--
|
|
4
|
+
--icon-logo: #{default.$icon-logo};
|
|
5
|
+
--icon-name: #{default.$icon-name};
|
|
6
|
+
|
|
7
|
+
--font-special: #{default.$font-special};
|
|
8
|
+
--font-mono: #{default.$font-mono};
|
|
9
|
+
--font-main: #{default.$font-main};
|
|
10
|
+
--font-secondary: #{default.$font-secondary};
|
|
11
|
+
--font-tertiary: #{default.$font-tertiary};
|
|
12
|
+
--font-samp: #{default.$font-samp};
|
|
13
|
+
|
|
14
|
+
--color-bg: #{default.$color-bg};
|
|
15
|
+
--color-fg: #{default.$color-fg};
|
|
16
|
+
--color-primary: #{default.$color-primary};
|
|
17
|
+
--color-secondary: #{default.$color-secondary};
|
|
18
|
+
--color-tertiary: #{default.$color-tertiary};
|
|
19
|
+
--color-link: #{default.$color-link};
|
|
20
|
+
--color-dark: #{default.$color-dark};
|
|
21
|
+
--color-theme: #{default.$color-theme};
|
|
22
|
+
--color-bullet: #{default.$color-bullet};
|
|
23
|
+
--color-row-odd: #{default.$color-row-odd};
|
|
24
|
+
--color-row-even: #{default.$color-row-even};
|
|
25
|
+
|
|
26
|
+
--color-card-fg: #{default.$color-card-fg};
|
|
27
|
+
--color-card-bg: #{default.$color-card-bg};
|
|
28
|
+
--color-code-bg: #{default.$color-code-bg};
|
|
29
|
+
|
|
30
|
+
--content-width: #{default.$content-width};
|
|
31
|
+
|
|
32
|
+
--grid-width: #{default.$grid-width};
|
|
33
|
+
--grid-image-height: #{default.$grid-image-height};
|
|
34
|
+
--grid-body-height: #{default.$grid-body-height};
|
|
35
|
+
--card-font-size: #{default.$card-font-size};
|
|
36
|
+
--samp-font-size: #{default.$samp-font-size};
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
body {
|
data/_sass/_default.scss
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
$icon-logo: url('/assets/logo-icon.svg');
|
|
2
|
+
$icon-name: 'Material Symbols Outlined';
|
|
2
3
|
|
|
3
4
|
$font-main: 'Open Sans', sans-serif;
|
|
4
5
|
$font-mono: 'Share Tech Mono', monospace;
|
|
@@ -31,3 +32,4 @@ $content-width: 600px;
|
|
|
31
32
|
|
|
32
33
|
$grid-width: 180px;
|
|
33
34
|
$grid-image-height: 180px;
|
|
35
|
+
$grid-body-height: initial;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/****************************************/
|
|
2
|
+
/* */
|
|
3
|
+
/* Section 1: The Looks */
|
|
4
|
+
/* */
|
|
5
|
+
/****************************************/
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/* 1. The Main Container */
|
|
9
|
+
div.essential_audio {
|
|
10
|
+
position: relative;
|
|
11
|
+
z-index: 0;
|
|
12
|
+
width: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/* 2. The Player Button – General */
|
|
17
|
+
div.essential_audio > div:nth-child(1) div {
|
|
18
|
+
width: 28px;
|
|
19
|
+
height: 28px;
|
|
20
|
+
margin-top: -13px;
|
|
21
|
+
border-radius: 14px;
|
|
22
|
+
color: var(--color-fg);
|
|
23
|
+
background-color: var(--color-link);
|
|
24
|
+
}
|
|
25
|
+
div.essential_audio > div:nth-child(1) div:after {
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: 2px;
|
|
28
|
+
left: 2px;
|
|
29
|
+
width: 24px;
|
|
30
|
+
height: 24px;
|
|
31
|
+
}
|
|
32
|
+
/* Set here how much the button exceeds the horizontal track limits: */
|
|
33
|
+
/* This must not be deleted! (but can be changed, of course) */
|
|
34
|
+
:root {
|
|
35
|
+
--button-protrusion: 4px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* 2.a) The Player Button – Off */
|
|
39
|
+
div.essential_audio > div:nth-child(1) div.off:after {
|
|
40
|
+
content: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><polygon fill='%23FFF' points='10,6.9 10,23.1 24,15' /></svg>");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* 2.b) The Player Button – Loading */
|
|
44
|
+
div.essential_audio > div:nth-child(1) div.load:after {
|
|
45
|
+
content: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><circle opacity='0.64' fill='%23FFFFFF' cx='6.5' cy='18.5' r='2'/><circle opacity='0.76' fill='%23FFFFFF' cx='6.5' cy='11.5' r='2'/><circle opacity='0.88' fill='%23FFFFFF' cx='11.5' cy='6.5' r='2'/><circle fill='%23FFFFFF' cx='18.5' cy='6.5' r='2'/><circle opacity='0.16' fill='%23FFFFFF' cx='23.5' cy='11.5' r='2'/><circle opacity='0.28' fill='%23FFFFFF' cx='23.5' cy='18.5' r='2'/><circle opacity='0.4' fill='%23FFFFFF' cx='18.5' cy='23.4' r='2'/><circle opacity='0.52' fill='%23FFFFFF' cx='11.5' cy='23.4' r='2'/></svg>");
|
|
46
|
+
animation: audio_load_rotate 1s infinite linear;
|
|
47
|
+
}
|
|
48
|
+
@keyframes audio_load_rotate {
|
|
49
|
+
from { transform: rotate(0deg); }
|
|
50
|
+
to { transform: rotate(360deg); }
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* 2.c) The Player Button – Playing */
|
|
54
|
+
div.essential_audio > div:nth-child(1) div.play {
|
|
55
|
+
background-color: var(--color-link)!important;
|
|
56
|
+
}
|
|
57
|
+
div.essential_audio > div:nth-child(1) div.play:after {
|
|
58
|
+
content: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><rect fill='%23FFF' x='17' y='8' width='3' height='14' /><rect fill='%23FFF' x='10' y='8' width='3' height='14' /></svg>");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* 2.d) The Player Button – Dragging */
|
|
62
|
+
div.essential_audio > div:nth-child(1) div.drag {
|
|
63
|
+
transition: left 0s!important;
|
|
64
|
+
/*
|
|
65
|
+
cursor: grab!important;
|
|
66
|
+
*/
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* 2.e) The Player Button – Error */
|
|
70
|
+
div.essential_audio > div:nth-child(1) div.error {
|
|
71
|
+
background-color: rgba(0,0,0,0.35)!important;
|
|
72
|
+
}
|
|
73
|
+
div.essential_audio > div:nth-child(1) div.error:after {
|
|
74
|
+
content: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path fill='%23FFF' d='M13.9,18.6c0-0.3,0-0.5,0-0.9c0-1.6,0.6-2.9,2.1-3.9l1.1-0.8c0.9-0.6,1.3-1.5,1.3-2.4c0-1.5-1-2.8-3-2.8c-2.2,0-3.1,1.6-3.1,3.2c0,0.2,0,0.4,0,0.5L10,11.9c-0.1-0.3-0.1-0.8-0.1-1.2c0-2.3,1.7-5.1,5.5-5.1c3.5,0,5.5,2.5,5.5,5c0,2-1.1,3.4-2.5,4.3l-1.2,0.8c-0.8,0.5-1.1,1.4-1.1,2.4c0,0.1,0,0.2,0,0.5H13.9z'/><path fill='%23FFF' d='M15,20.8c1,0,1.8,0.8,1.8,1.8S16,24.4,15,24.4c-1,0-1.8-0.8-1.8-1.8S14,20.8,15,20.8z'/></svg>");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/* 3. The Track */
|
|
79
|
+
div.essential_audio > div:nth-child(2) {
|
|
80
|
+
height: 2px;
|
|
81
|
+
}
|
|
82
|
+
div.essential_audio > div:nth-child(2):after {
|
|
83
|
+
content: "";
|
|
84
|
+
position: absolute;
|
|
85
|
+
z-index: 0;
|
|
86
|
+
background-color: #000;
|
|
87
|
+
opacity: 0.3;
|
|
88
|
+
mix-blend-mode: multiply;
|
|
89
|
+
top: 0px;
|
|
90
|
+
left: 0px;
|
|
91
|
+
width: 100%;
|
|
92
|
+
height: 100%;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/* 4. The Loading Progress Bar */
|
|
97
|
+
div.essential_audio > div:nth-child(2) div {
|
|
98
|
+
background-color: var(--color-link);
|
|
99
|
+
mix-blend-mode: multiply;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
/* 5. The Klick & Drag Sensor */
|
|
104
|
+
div.essential_audio > div:nth-child(3) {
|
|
105
|
+
height: 12px;
|
|
106
|
+
margin-top: -5px;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
/****************************************/
|
|
113
|
+
/* */
|
|
114
|
+
/* Section 2: Core Values */
|
|
115
|
+
/* */
|
|
116
|
+
/****************************************/
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
/* 1. The Main Container + General Settings */
|
|
120
|
+
div.essential_audio,
|
|
121
|
+
div.essential_audio * {
|
|
122
|
+
user-select: none;
|
|
123
|
+
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
|
124
|
+
-webkit-overflow-scrolling: auto;
|
|
125
|
+
}
|
|
126
|
+
div.essential_audio *:focus {
|
|
127
|
+
outline: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
/* 2. The Player Button */
|
|
132
|
+
div.essential_audio > div:nth-child(1) div {
|
|
133
|
+
position: absolute;
|
|
134
|
+
top: 0px;
|
|
135
|
+
left: 0px;
|
|
136
|
+
cursor: pointer;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* 2.a) Container for Player Button */
|
|
140
|
+
div.essential_audio > div:nth-child(1) {
|
|
141
|
+
position: absolute;
|
|
142
|
+
z-index: 3;
|
|
143
|
+
height: 0px;
|
|
144
|
+
top: 0px;
|
|
145
|
+
left: calc(var(--button-protrusion) * -1);
|
|
146
|
+
width: calc(100% + (2 * var(--button-protrusion)));
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
/* 3. The Track */
|
|
151
|
+
div.essential_audio > div:nth-child(2) {
|
|
152
|
+
position: relative;
|
|
153
|
+
width: 100%;
|
|
154
|
+
overflow: hidden;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
/* 4. The Loading Progress Bar */
|
|
159
|
+
div.essential_audio > div:nth-child(2) div {
|
|
160
|
+
position: absolute;
|
|
161
|
+
z-index: 1;
|
|
162
|
+
width: 0%;
|
|
163
|
+
height: 100%;
|
|
164
|
+
top: 0px;
|
|
165
|
+
left: 0px;
|
|
166
|
+
transition: width 0.5s;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
/* 5. The Klick & Drag Sensor */
|
|
171
|
+
div.essential_audio > div:nth-child(3) {
|
|
172
|
+
position: absolute;
|
|
173
|
+
z-index: 2;
|
|
174
|
+
width: 100%;
|
|
175
|
+
top: 0px;
|
|
176
|
+
left: 0px;
|
|
177
|
+
}
|
data/_sass/_grid.scss
CHANGED
data/_sass/_post.scss
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
@use "bullets" as *;
|
|
2
|
+
@use "table" as *;
|
|
3
|
+
@use "tab-colors" as *;
|
|
4
|
+
@use "paginator" as *;
|
|
5
|
+
@use "video" as *;
|
|
6
|
+
@use "essential-audio" as *;
|
|
7
|
+
|
|
1
8
|
@mixin boxed() {
|
|
2
9
|
margin-top: 100px;
|
|
3
10
|
border-radius: 5px;
|
|
@@ -179,13 +186,18 @@ samp {
|
|
|
179
186
|
}
|
|
180
187
|
}
|
|
181
188
|
|
|
189
|
+
.lesson-group {
|
|
190
|
+
flex-wrap: wrap;
|
|
191
|
+
justify-content: center;
|
|
192
|
+
}
|
|
193
|
+
|
|
182
194
|
.lesson-number {
|
|
183
195
|
display: flex;
|
|
184
196
|
align-items: center;
|
|
185
197
|
justify-content: center;
|
|
186
198
|
text-decoration: none;
|
|
187
199
|
padding: 7px 5px 3px 5px;
|
|
188
|
-
margin:
|
|
200
|
+
margin: 5px;
|
|
189
201
|
background-color: var(--color-fg);
|
|
190
202
|
font-family: var(--fontText);
|
|
191
203
|
color: var(--color-bg);
|
|
@@ -197,10 +209,10 @@ samp {
|
|
|
197
209
|
&.current {
|
|
198
210
|
background-color: var(--color-secondary);
|
|
199
211
|
}
|
|
200
|
-
&.
|
|
212
|
+
&.icon {
|
|
201
213
|
font-size: 25px;
|
|
202
214
|
padding: 5px;
|
|
203
|
-
font-family:
|
|
215
|
+
font-family: var(--icon-name);
|
|
204
216
|
}
|
|
205
217
|
}
|
|
206
218
|
|
|
@@ -208,10 +220,3 @@ a.lesson-number{
|
|
|
208
220
|
color: var(--color-fg);
|
|
209
221
|
background-color: var(--color-link);
|
|
210
222
|
}
|
|
211
|
-
|
|
212
|
-
@import
|
|
213
|
-
"bullets",
|
|
214
|
-
"table",
|
|
215
|
-
"tab-colors",
|
|
216
|
-
"paginator",
|
|
217
|
-
"video";
|
data/_sass/_tab.scss
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
@use "tab-colors" as *;
|
|
2
|
+
|
|
1
3
|
@mixin special() {
|
|
2
4
|
color: var(--color-card-bg, 'whitesmoke');
|
|
3
5
|
font-family: var(--font-special);
|
|
@@ -41,8 +43,8 @@
|
|
|
41
43
|
display: block;
|
|
42
44
|
font-size: 12px;
|
|
43
45
|
}
|
|
44
|
-
&.
|
|
45
|
-
font-family:
|
|
46
|
+
&.icon {
|
|
47
|
+
font-family: var(--icon-name);
|
|
46
48
|
line-height: 0.7;
|
|
47
49
|
font-size: 37px;
|
|
48
50
|
}
|
|
@@ -69,6 +71,34 @@
|
|
|
69
71
|
padding: 10px;
|
|
70
72
|
overflow: hidden;
|
|
71
73
|
text-align: left;
|
|
74
|
+
&.limit-height {
|
|
75
|
+
max-height: var(--grid-body-height);
|
|
76
|
+
position: relative;
|
|
77
|
+
overflow-y: auto;
|
|
78
|
+
padding-bottom: 0;
|
|
79
|
+
box-sizing: border-box;
|
|
80
|
+
&::after {
|
|
81
|
+
content: "";
|
|
82
|
+
position: sticky;
|
|
83
|
+
display: block;
|
|
84
|
+
bottom: 0;
|
|
85
|
+
left: 0;
|
|
86
|
+
right: 0;
|
|
87
|
+
height: 30px;
|
|
88
|
+
opacity: 0;
|
|
89
|
+
padding: 0;
|
|
90
|
+
margin: 0;
|
|
91
|
+
background: linear-gradient(to top,
|
|
92
|
+
rgba(0, 0, 0, 0.12) 0%,
|
|
93
|
+
transparent 100%);
|
|
94
|
+
pointer-events: none; /* clicks pass through */
|
|
95
|
+
transition: opacity 0.4s ease;
|
|
96
|
+
z-index: 1;
|
|
97
|
+
}
|
|
98
|
+
&.has-more::after {
|
|
99
|
+
opacity: 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
72
102
|
h2 {
|
|
73
103
|
word-break: break-word;
|
|
74
104
|
margin-top: 10px;
|
|
@@ -78,10 +108,14 @@
|
|
|
78
108
|
color: inherit;
|
|
79
109
|
margin: 5px 0;
|
|
80
110
|
}
|
|
81
|
-
.item:not(:first-child) {
|
|
82
|
-
border-top: 1px solid;
|
|
83
|
-
}
|
|
84
111
|
.item {
|
|
112
|
+
&:not(:first-child) {
|
|
113
|
+
border-top: 1px solid;
|
|
114
|
+
}
|
|
115
|
+
&:last-child {
|
|
116
|
+
margin-bottom: 0;
|
|
117
|
+
padding-bottom: 0;
|
|
118
|
+
}
|
|
85
119
|
margin-bottom: 20px;
|
|
86
120
|
text-align: left;
|
|
87
121
|
font-size: var(--card-font-size);
|
|
@@ -96,7 +130,7 @@
|
|
|
96
130
|
border-radius: 5px;
|
|
97
131
|
margin: 0 3px;
|
|
98
132
|
padding: 2px 5px;
|
|
99
|
-
.
|
|
133
|
+
.icon {
|
|
100
134
|
font-size: 1.3em;
|
|
101
135
|
font-variation-settings: 'FILL' 1;
|
|
102
136
|
}
|
|
@@ -128,7 +162,7 @@
|
|
|
128
162
|
padding: 5px 10px;
|
|
129
163
|
color: white!important;
|
|
130
164
|
background-color: var(--color-card-fg);
|
|
131
|
-
.
|
|
165
|
+
.rocket {
|
|
132
166
|
font-variation-settings: 'FILL' 1;
|
|
133
167
|
}
|
|
134
168
|
}
|
|
@@ -141,4 +175,3 @@
|
|
|
141
175
|
}
|
|
142
176
|
}
|
|
143
177
|
|
|
144
|
-
@import "tab-colors";
|
data/_sass/init.scss
CHANGED
|
Binary file
|
data/assets/css/dialog.scss
CHANGED
data/assets/css/segment.scss
CHANGED
data/assets/css/session.scss
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Essential Audio Player v1.0.3
|
|
2
|
+
var Essential_Audio=(()=>{var t=true;var f=false;var n=null;var A={};var b=[];var c=f;var d=f;var h=0;const g=[["mp3","mpeg"],["ogg","ogg"],["wav","wav"],["aac","mpeg"],["m4a","mpeg"]];var j;var k;var l;var m=f;var o;var p;var q=50;var pa="div.essential_audio";var pb="div:nth-child(1)";var pf="mousemove";var pg="touchmove";var ph="mouseup";var pj="touchend";var pk="";var pl=(a)=>{return a.duration};var pm=(a)=>{return a.currentTime};var pn=(a)=>{return a.buffered};var po=()=>{if(event.changedTouches){l=event.changedTouches[0].pageX}else{l=event.pageX}return l};if(document.readyState!="loading"){B()}else{document.addEventListener("DOMContentLoaded",B)};function B(){var ia=document.querySelectorAll(pa);ia.forEach((vr,ib)=>{vr.innerHTML="<div><div class=\"off\"><!----></div></div><div><div><!----></div></div><div><!----></div>";var
|
|
3
|
+
ic;if(vr.hasAttribute("id")){ic=vr.getAttribute("id")}else{ic=ib+1;vr.setAttribute("id",ic)}A[ic]=document.createElement("audio");var a=A[ic];a.id=ic;a.za=vr.querySelector(pb).querySelector("div");a.zb=a.za.offsetWidth;a.zc=vr.querySelector(pb).offsetWidth-a.zb;if(a.zc<0){a.zc=0}a.zd=vr.getAttribute("data-url");a.ze=0;a.zf=0;a.zh=0;a.zi=0;a.zj=f;a.zks=0;a.zl=f;a.zm=f;a.zn=f;a.zo=f;a.zp=f;a.zq=f;b[ib]=ic;a.crossOrigin="anonymous";a.preload="metadata";if(vr.hasAttribute("data-loop")){a.loop=t}if(vr.hasAttribute("data-scratch")){a.zr=t}else{a.zr=f}if(vr.hasAttribute("data-autoplay")){if(h<1){h=1;a.autoplay=t;a.preload="auto";c=a;E(a)}}if(vr.hasAttribute("data-preload")){if(!a.autoplay){a.preload="auto";E(a)}}a.za.onmousedown=(e)=>{e.stopPropagation();e.preventDefault();Ba(a)};a.za.ontouchstart=(e)=>{e.stopPropagation();e.preventDefault();Ba(a)};var
|
|
4
|
+
ie=vr.querySelector("div:nth-child(3)");ie.onmousedown=(e)=>{e.stopPropagation();e.preventDefault();Bb(a)};ie.ontouchstart=(e)=>{e.stopPropagation();e.preventDefault();Bb(a)}})};function Ba(a){a.zp=t;j=po();k=j-(a.za.getBoundingClientRect().left+window.scrollX);window.addEventListener(pf,Bc);var va=setTimeout(function(){window.addEventListener(pg,Bc)},100);function Bc(){if(j!=po()){m=t;if(a.zc>0){a.za.classList.add("drag")}}if(m&&(a.zc>0)){o=po()-(a.za.parentNode.getBoundingClientRect().left+window.scrollX)-k;a.zh=Math.min(Math.max(o,0),a.zc);a.za.style.left=a.zh+"px";if(a.zr&&a.zn){V(a);if(a.paused&&(pm(a)!=pl(a))){a.play()}}}};window.addEventListener(ph,Bd);window.addEventListener(pj,Bd);function
|
|
5
|
+
Bd(){window.removeEventListener(pf,Bc);window.removeEventListener(pg,Bc);clearTimeout(va);window.removeEventListener(ph,Bd);window.removeEventListener(pj,Bd);if(m){if(pl(a)&&(a.zc>0)){if(!a.zr||!a.zn){V(a)}if(a.zn&&a.paused&&(pm(a)!=pl(a))){a.play()}}m=f;a.za.classList.remove("drag")}else{if(c.id&&(c.id==a.id)&&a.zn){P(a)}if(!a.zl){C(a)}}a.zp=f}};function Bb(a){if(a.zc>0){a.zp=t;j=po();k=Math.floor(a.zb/2);window.addEventListener(pf,Be);window.addEventListener(pg,Be);function Be(){m=t;a.za.classList.add("drag");o=po()-a.za.parentNode.getBoundingClientRect().left-k;a.zh=Math.min(Math.max(o,0),a.zc);a.za.style.left=a.zh+"px";if(a.zr&&a.zn){V(a);if(a.paused&&(pm(a)!=pl(a))){a.play()}}};window.addEventListener(ph,Bf);window.addEventListener(pj,Bf);function
|
|
6
|
+
Bf(){window.removeEventListener(pf,Be);window.removeEventListener(pg,Be);window.removeEventListener(ph,Bf);window.removeEventListener(pj,Bf);if(m){if(pl(a)){if(!a.zr||a.zn){V(a)}if(a.zn&&a.paused&&(pm(a)!=pl(a))){a.play()}}m=f;a.za.classList.remove("drag")}else{p=po()-a.za.parentNode.getBoundingClientRect().left-k;a.zh=Math.min(Math.max(p,0),a.zc);a.za.style.left=a.zh+"px";if(pl(a)){V(a);if(a.zn){a.play()}}}a.zp=f}}};function C(a){if(c){if(a.id==c.id){R();return}else{ R()}}c=a;if(pl(a)){O(a)}else{if(!a.zj){a.play();a.pause();E(a)}}};function D(a,vq){a.za.setAttribute("class","");a.za.classList.add(vq)};function
|
|
7
|
+
E(a){D(a,"load");a.zj=t;a.zm=t;a.onplay=()=>{if(!a.zm){clearTimeout(a.td);D(a,"play")}if(a.id==d.id){c=a;d=f;a.zn=t;if(a.zc>0){a.tc=setInterval(Q,q,a)}}};a.onplaying=()=>{clearTimeout(a.td);D(a,"play")};a.onwaiting=()=>{a.td=setTimeout(()=>{D(a,"load")},50)};a.onpause=()=>{if(!a.zm&&!a.zp&&!a.ended){D(a,"off")}if(a.zn&&!a.zm&&!a.ended){R()}};a.onended=()=>{if(a.zc==0&&!a.loop){R(0)}};a.onseeking=()=>{if(a.id==d.id){P(a)}};a.onseeked=()=>{if(a.id==d.id){P(a)}};a.onloadedmetadata=()=>{a.onloadedmetadata=n;J(a)};a.onprogress=()=>{a.onprogress=n;a.ta=setInterval(U,500,a);a.zq=t};var vc=a.zd.substr(a.zd.length-4,a.zd.length);vc=vc.toLowerCase();var vd=f;for(var i=0;i<g.length;i++){if(vc=="."+g[i][0]){var ve=a.zd+pk;F(a,ve,i);vd=t;break}}if(!vd){g.forEach((vr,i)=>{var ve=a.zd+"."+vr[0]+pk;F(a,ve,i)})}};function F(a,ve,vf){var vg=new
|
|
8
|
+
XMLHttpRequest;vg.onreadystatechange=()=>{if(vg.readyState==2){vg.onreadystatechange=n;G(vg,a,ve,vf)}};vg.onerror=()=>{G(vg,a,ve,vf)};vg.open("HEAD",ve);vg.send()};function G(vg,a,ve,vf){if(vg.status==200){a.ze+=1;a.innerHTML+="<source id=\""+g[vf][0]+"\" src=\""+ve+"\" type=\"audio/"+g[vf][1]+"\" crossorigin=\"anonymous\">"}else{a.zf+=1;if((g.length-a.zf)==0){H(a)}}vg.onerror=n};function H(a){a.zj=f;a.zo=f;a.zn=f;a.zl=t;D(a,"error");if(a.id==c.id){c=f}};function J(a){if(a.preload=="auto"){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream){a.preload="metadata"}var vi=a.play();if(vi!==undefined){vi.then(()=>{if(a.autoplay){M(a)}else{K(a)}}).catch(error=>{K(a)})}}else{if(a.readyState>2){M(a)}else{V(a);if(a.zh==a.zc){T(a)}a.tb=setInterval(L,250,a)}}};function K(a){a.pause();D(a,"off");a.currentTime=0;a.zh=0;a.zm=f;if(a.autoplay&&c){if(a.id==c.id){d=c;c=f}}};function L(a){V(a);var vj=0;for(var
|
|
9
|
+
i=0;i<pn(a).length;i++){if(pn(a).start(pn(a).length-1-i)<=pm(a)){vj=pn(a).end(pn(a).length-1-i);break}}if(vj>=pm(a)){clearInterval(a.tb);M(a)}};function M(a){a.zj=f;a.zm=f;if(!a.zn){if(!a.zo){O(a)}}else{R(a)}};function O(a){if(pm(a)==pl(a)){T(a)}V(a);d=f;a.zn=t;if(a.zc>0){a.tc=setInterval(Q,q,a)}a.play();var vs=setTimeout(function(){if(a.zn&&a.paused){R()}clearTimeout(vs)},25);D(a,"play")};function N(vr){if(!vr){if(d){vr=d.id}else{vr=b[0]}}var a=A[vr];if(!a.zn){C(a)}};function Q(a){if(!a.zp){P(a);if(pm(a)==pl(a)){if(a.loop){T(a)}else{R(0)}}}};function P(a){a.zh=Math.round(pm(a)*a.zc/pl(a));a.za.style.left=a.zh+"px"};function R(vp){if(c){clearInterval(c["tc"]);c.zo=t;c.zn=f;c.pause();D(c,"off");if(vp==0){T(c)}else{c.zh=c.za.offsetLeft}if(!c.zm){d=c}c=f}};function T(a){if(pl(a)){a.currentTime=0}a.zh=0;a.za.style.left=0+"px"};function S(vr){if(!vr){if(d){vr=d.id}else{vr=b[0]}}var a=A[vr];T(a)};function U(a){if(pl(a)){if(a.zc==0){var vk=0}else{var vk=Math.round(a.zh/a.zc*pl(a)*100)/100}var
|
|
10
|
+
vl=0;for(var i=0;i<pn(a).length;i++){if(pn(a).start(pn(a).length-1-i)<=vk){vl=pn(a).end(pn(a).length-1-i);break}}a.zi=Math.round(vl/pl(a)*100);a.za.parentNode.parentNode.querySelector("div:nth-child(2)").querySelector("div").style.width=a.zi+"%";if(a.zi==100){clearInterval(a.ta);a.zq=f}}};function V(a){if(a.zc>0){a.currentTime=a.zh/a.zc*pl(a)}};function W(){var vm=document.querySelectorAll(pa);vm.forEach((vr)=>{var vn=vr.getAttribute("id");var a=A[vn];if(a.zq){clearInterval(a.ta)}a.zb=a.za.offsetWidth;var vo=vr.querySelector(pb).offsetWidth-a.zb;if(vo<0){vo=0}if((a.za.offsetLeft>0)&&(vn!=c.id)){a.zh=Math.round(a.za.offsetLeft/a.zc*vo);a.za.style.left=a.zh+"px"}a.zc=vo;if(pl(a)&&!a.zn){V(a)}if(a.zq){a.ta=setInterval(U,500,a)}})};window.addEventListener("resize",W);return{init:B,Audio:A,Play:N,Stop:R,Reset:S,players:Xa,active:Xb,last:Xc};function Xa(){return b}function Xb(){if(c){return c.id}else{return f}}function Xc(){if(d){return d.id}else{return f}}})();
|
data/assets/site.webmanifest
CHANGED
|
@@ -20,7 +20,12 @@
|
|
|
20
20
|
{
|
|
21
21
|
"name": "{{ sc.name }}",
|
|
22
22
|
"url": "{{ sc.url }}",
|
|
23
|
-
"description": "{{ sc.desc }}"
|
|
23
|
+
"description": "{{ sc.desc }}",
|
|
24
|
+
"icons": [{
|
|
25
|
+
"src": "/assets/logo-96.png",
|
|
26
|
+
"type": "image/png",
|
|
27
|
+
"sizes": "96x96"
|
|
28
|
+
}]
|
|
24
29
|
}{%- if forloop.index != forloop.length %},{%- endif %}
|
|
25
30
|
{%- endfor %}
|
|
26
31
|
],
|
|
@@ -39,6 +44,12 @@
|
|
|
39
44
|
"type": "image/png",
|
|
40
45
|
"sizes": "300x300"
|
|
41
46
|
},
|
|
47
|
+
{
|
|
48
|
+
"src": "logo-512.png",
|
|
49
|
+
"type": "image/png",
|
|
50
|
+
"sizes": "312x312",
|
|
51
|
+
"purpose": "any"
|
|
52
|
+
},
|
|
42
53
|
{
|
|
43
54
|
"src": "logo-icon.svg",
|
|
44
55
|
"type": "image/svg+xml",
|
|
@@ -48,6 +59,7 @@
|
|
|
48
59
|
],
|
|
49
60
|
"display_override": [
|
|
50
61
|
"standalone",
|
|
51
|
-
"fullscreen"
|
|
62
|
+
"fullscreen",
|
|
63
|
+
"window-controls-overlay"
|
|
52
64
|
]
|
|
53
65
|
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: askclass-course-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- AskClass
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -24,7 +24,7 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '4.2'
|
|
27
|
-
description:
|
|
27
|
+
description:
|
|
28
28
|
email:
|
|
29
29
|
- team@askclass.com
|
|
30
30
|
executables: []
|
|
@@ -47,6 +47,7 @@ files:
|
|
|
47
47
|
- _includes/segment/header.html
|
|
48
48
|
- _includes/segment/index.html
|
|
49
49
|
- _includes/segment/nav.html
|
|
50
|
+
- _includes/session/audio.html
|
|
50
51
|
- _includes/session/bubble.html
|
|
51
52
|
- _includes/session/content_revealer.html
|
|
52
53
|
- _includes/session/conversation.html
|
|
@@ -58,6 +59,7 @@ files:
|
|
|
58
59
|
- _includes/session/paginator.html
|
|
59
60
|
- _includes/session/points.html
|
|
60
61
|
- _includes/session/say.html
|
|
62
|
+
- _includes/session/sounds.html
|
|
61
63
|
- _includes/session/videos.html
|
|
62
64
|
- _includes/session/youtube.html
|
|
63
65
|
- _layouts/default.html
|
|
@@ -67,6 +69,7 @@ files:
|
|
|
67
69
|
- _sass/_bubbles.scss
|
|
68
70
|
- _sass/_bullets.scss
|
|
69
71
|
- _sass/_default.scss
|
|
72
|
+
- _sass/_essential-audio.scss
|
|
70
73
|
- _sass/_grid.scss
|
|
71
74
|
- _sass/_paginator.scss
|
|
72
75
|
- _sass/_post.scss
|
|
@@ -75,10 +78,12 @@ files:
|
|
|
75
78
|
- _sass/_table.scss
|
|
76
79
|
- _sass/_video.scss
|
|
77
80
|
- _sass/init.scss
|
|
81
|
+
- assets/audio/appreciation.mp3
|
|
78
82
|
- assets/css/dialog.scss
|
|
79
83
|
- assets/css/segment.scss
|
|
80
84
|
- assets/css/session.scss
|
|
81
85
|
- assets/favicon.ico
|
|
86
|
+
- assets/js/essential-audio-player.js
|
|
82
87
|
- assets/loading.svg
|
|
83
88
|
- assets/logo-144.png
|
|
84
89
|
- assets/logo-192.png
|
|
@@ -99,7 +104,7 @@ homepage: https://acc.askclass.com
|
|
|
99
104
|
licenses:
|
|
100
105
|
- MPL-2.0
|
|
101
106
|
metadata: {}
|
|
102
|
-
post_install_message:
|
|
107
|
+
post_install_message:
|
|
103
108
|
rdoc_options: []
|
|
104
109
|
require_paths:
|
|
105
110
|
- lib
|
|
@@ -114,8 +119,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
114
119
|
- !ruby/object:Gem::Version
|
|
115
120
|
version: '0'
|
|
116
121
|
requirements: []
|
|
117
|
-
rubygems_version: 3.
|
|
118
|
-
signing_key:
|
|
122
|
+
rubygems_version: 3.4.19
|
|
123
|
+
signing_key:
|
|
119
124
|
specification_version: 4
|
|
120
125
|
summary: Responsive Jekyll theme for putting analog class syllabus online.
|
|
121
126
|
test_files: []
|