aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/lib
diff options
context:
space:
mode:
Diffstat (limited to 'services/nuldoc/lib')
-rw-r--r--services/nuldoc/lib/nuldoc/dom/html_builder.rb3
-rw-r--r--services/nuldoc/lib/nuldoc/pages/slide_page.rb27
-rw-r--r--services/nuldoc/lib/nuldoc/renderers/html.rb2
3 files changed, 30 insertions, 2 deletions
diff --git a/services/nuldoc/lib/nuldoc/dom/html_builder.rb b/services/nuldoc/lib/nuldoc/dom/html_builder.rb
index 2a506640..044b52cf 100644
--- a/services/nuldoc/lib/nuldoc/dom/html_builder.rb
+++ b/services/nuldoc/lib/nuldoc/dom/html_builder.rb
@@ -23,17 +23,20 @@ module Nuldoc
def hr(**attrs) = elem('hr', **attrs)
def html(**attrs, &) = elem('html', **attrs, &)
def img(**attrs) = elem('img', **attrs)
+ def input(**attrs) = elem('input', **attrs)
def li(**attrs, &) = elem('li', **attrs, &)
def link(**attrs) = elem('link', **attrs)
def main(**attrs, &) = elem('main', **attrs, &)
def meta(**attrs) = elem('meta', **attrs)
def nav(**attrs, &) = elem('nav', **attrs, &)
+ def noscript(**attrs, &) = elem('noscript', **attrs, &)
def ol(**attrs, &) = elem('ol', **attrs, &)
def p(**attrs, &) = elem('p', **attrs, &)
def script(**attrs, &) = elem('script', **attrs, &)
def section(**attrs, &) = elem('section', **attrs, &)
def span(**attrs, &) = elem('span', **attrs, &)
def strong(**attrs, &) = elem('strong', **attrs, &)
+ def style(**attrs, &) = elem('style', **attrs, &)
def table(**attrs, &) = elem('table', **attrs, &)
def tbody(**attrs, &) = elem('tbody', **attrs, &)
def thead(**attrs, &) = elem('thead', **attrs, &)
diff --git a/services/nuldoc/lib/nuldoc/pages/slide_page.rb b/services/nuldoc/lib/nuldoc/pages/slide_page.rb
index f58be386..3645008d 100644
--- a/services/nuldoc/lib/nuldoc/pages/slide_page.rb
+++ b/services/nuldoc/lib/nuldoc/pages/slide_page.rb
@@ -47,8 +47,21 @@ module Nuldoc
end
end
end
- div class: 'slide-container' do
- canvas id: 'slide', 'data-slide-link': slide.slide_link
+ div class: 'slide-container', id: 'slide-container',
+ 'data-slide-link': slide.slide_link do
+ div class: 'slide-stage', id: 'slide-stage' do
+ canvas id: 'slide'
+ div class: 'textLayer', id: 'text-layer'
+ div class: 'annotationLayer', id: 'annotation-layer'
+ end
+ div class: 'slide-status', id: 'slide-status',
+ role: 'status', 'aria-live': 'polite', hidden: 'hidden'
+ end
+ noscript do
+ style { raw '.slide-container,.controllers-buttons{display:none}' }
+ p class: 'slide-noscript' do
+ a(href: slide.slide_link) { text 'PDF をダウンロード' }
+ end
end
div class: 'controllers' do
div class: 'controllers-buttons' do
@@ -59,6 +72,13 @@ module Nuldoc
elem 'path', d: 'M15 18l-6-6 6-6'
end
end
+ div class: 'page-indicator' do
+ input id: 'page-input', class: 'page-input', type: 'number',
+ min: '1', step: '1', value: '1', inputmode: 'numeric',
+ 'aria-label': 'ページ番号'
+ span(class: 'page-separator') { text '/' }
+ span(class: 'page-count', id: 'page-count') { text '–' }
+ end
button id: 'next', type: 'button',
'aria-label': '次のページ (→/l)', title: '次のページ (→/l)' do
elem 'svg', width: '20', height: '20', viewBox: '0 0 24 24', fill: 'none',
@@ -67,6 +87,9 @@ module Nuldoc
end
end
end
+ a(class: 'slide-download', href: slide.slide_link, download: '') do
+ text 'PDF をダウンロード'
+ end
end
render Components::StaticScript,
site: 'slides',
diff --git a/services/nuldoc/lib/nuldoc/renderers/html.rb b/services/nuldoc/lib/nuldoc/renderers/html.rb
index d71692e5..a03e99a2 100644
--- a/services/nuldoc/lib/nuldoc/renderers/html.rb
+++ b/services/nuldoc/lib/nuldoc/renderers/html.rb
@@ -28,6 +28,7 @@ module Nuldoc
'li' => { type: :block },
'link' => { type: :block, self_closing: true },
'img' => { type: :inline, self_closing: true },
+ 'input' => { type: :inline, self_closing: true },
'ins' => { type: :inline },
'main' => { type: :block },
'mark' => { type: :inline },
@@ -41,6 +42,7 @@ module Nuldoc
'section' => { type: :block },
'span' => { type: :inline },
'strong' => { type: :inline },
+ 'style' => { type: :block },
'sub' => { type: :inline },
'sup' => { type: :inline },
'table' => { type: :block },