asciidoctor-tabs 1.0.0.alpha.5 → 1.0.0.alpha.6
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/CHANGELOG.adoc +17 -0
- data/README.adoc +1 -1
- data/data/js/tabs.js +27 -3
- data/lib/asciidoctor/tabs/block.rb +6 -1
- data/lib/asciidoctor/tabs/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd23b52dcb671b18e2fc149ff7c4c0f131acc7b36c5a83df0003c22cc341d8cd
|
4
|
+
data.tar.gz: 502e57c0df6a007731a21dce2f382f54ea3e940c6548e914e91aab25d233a995
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41ddf35603690caa50d3685eb398ebbfd65ecc13630827731ec11493667a2bcd4db8616e530ae11cb8f05fa450d258b9e734ad4ee10fbe1bcaaf1c256ee681e7
|
7
|
+
data.tar.gz: ac3f2b5a3d44a8209436955dd5ebb74eff9e2bfbc0f107e572488859de78cb133817db3c5362c09198aee71b9381dfa56646e036ebd885b5cf05231b23231a7b
|
data/CHANGELOG.adoc
CHANGED
@@ -4,6 +4,23 @@
|
|
4
4
|
This document provides a curated view of the changes to Asciidoctor Tabs per release.
|
5
5
|
For a detailed view of what has changed, refer to the {url-repo}/commits/main[commit history] on GitHub.
|
6
6
|
|
7
|
+
== 1.0.0-alpha.6 (2022-11-16) - @mojavelinux
|
8
|
+
|
9
|
+
=== Added
|
10
|
+
|
11
|
+
* Honor title on tabs block; apply normal subs to it (#26)
|
12
|
+
* Clear location hash (URL fragment) when a tab is clicked (#24)
|
13
|
+
* Register ref for each tab so its ID can be used as target of xref (#24)
|
14
|
+
* Activate tab when selected from an internal xref (#24)
|
15
|
+
|
16
|
+
=== Fixed
|
17
|
+
|
18
|
+
* Decode fragment from URL so it can be matched against tab ID (#27)
|
19
|
+
|
20
|
+
=== Details
|
21
|
+
|
22
|
+
{url-repo}/releases/tag/v1.0.0-alpha.6[git tag] | {url-repo}/compare/v1.0.0-alpha.5\...v1.0.0-alpha.6[full diff]
|
23
|
+
|
7
24
|
== 1.0.0-alpha.5 (2022-10-23) - @mojavelinux
|
8
25
|
|
9
26
|
=== Added
|
data/README.adoc
CHANGED
data/data/js/tabs.js
CHANGED
@@ -2,8 +2,11 @@
|
|
2
2
|
;(function () {
|
3
3
|
'use strict'
|
4
4
|
|
5
|
-
var
|
6
|
-
|
5
|
+
var tabsets = find('.tabset')
|
6
|
+
if (!tabsets.length) return
|
7
|
+
var fragment = decodeFragment(window.location.hash)
|
8
|
+
|
9
|
+
tabsets.forEach(function (tabset) {
|
7
10
|
var active
|
8
11
|
var tabs = tabset.querySelector('.tabs')
|
9
12
|
if (tabs) {
|
@@ -14,7 +17,7 @@
|
|
14
17
|
var pane = tabset.querySelector('.tab-pane[aria-labelledby~="' + id + '"]')
|
15
18
|
if (!pane) return
|
16
19
|
if (!idx) first = { tab: tab, pane: pane }
|
17
|
-
if (!active &&
|
20
|
+
if (!active && fragment === id && (active = true)) {
|
18
21
|
tab.classList.add('is-active')
|
19
22
|
if (pane) pane.classList.add('is-active')
|
20
23
|
} else if (!idx) {
|
@@ -31,15 +34,36 @@
|
|
31
34
|
tabset.classList.remove('is-loading')
|
32
35
|
})
|
33
36
|
|
37
|
+
tabsets = undefined
|
38
|
+
window.addEventListener('hashchange', onHashChange)
|
39
|
+
|
34
40
|
function activateTab (e) {
|
35
41
|
var tab = this.tab
|
36
42
|
var pane = this.pane
|
37
43
|
find('.tabs li, .tab-pane', this.tabset).forEach(function (it) {
|
38
44
|
it === tab || it === pane ? it.classList.add('is-active') : it.classList.remove('is-active')
|
39
45
|
})
|
46
|
+
if (!e) return
|
47
|
+
var hashIdx = window.location.hash ? window.location.href.indexOf('#') : -1
|
48
|
+
if (~hashIdx) window.history.replaceState(null, '', window.location.href.slice(0, hashIdx))
|
40
49
|
e.preventDefault()
|
41
50
|
}
|
42
51
|
|
52
|
+
function decodeFragment (hash) {
|
53
|
+
return hash && (~hash.indexOf('%') ? decodeURIComponent(hash.slice(1)) : hash.slice(1))
|
54
|
+
}
|
55
|
+
|
56
|
+
function onHashChange () {
|
57
|
+
var id = decodeFragment(window.location.hash)
|
58
|
+
if (!id) return
|
59
|
+
var tab = document.getElementById(id)
|
60
|
+
if (!(tab && document.querySelector('.tabset .tabs [id="' + id + '"]'))) return
|
61
|
+
if (tab.tagName === 'A') tab = tab.parentNode
|
62
|
+
var tabset = tab.closest('.tabset')
|
63
|
+
var pane = tabset.querySelector('.tab-pane[aria-labelledby~="' + id + '"]')
|
64
|
+
activateTab.call({ tabset: tabset, tab: tab, pane: pane })
|
65
|
+
}
|
66
|
+
|
43
67
|
function find (selector, from) {
|
44
68
|
return Array.prototype.slice.call((from || document).querySelectorAll(selector))
|
45
69
|
}
|
@@ -19,6 +19,9 @@ module Asciidoctor
|
|
19
19
|
tabset_number = doc.counter 'tabset-number'
|
20
20
|
tabs_id = attrs['id'] || (generate_id %(tabset #{tabset_number}), doc)
|
21
21
|
parent << (create_html_fragment parent, %(<div id="#{tabs_id}" class="tabset is-loading">))
|
22
|
+
if (title = attrs['title'])
|
23
|
+
parent << (create_html_fragment parent, %(<div class="title">#{parent.apply_subs title}</div>))
|
24
|
+
end
|
22
25
|
(tabs = create_list parent, :ulist).add_role 'tabs'
|
23
26
|
panes = {}
|
24
27
|
set_id_on_tab = (doc.backend == 'html5') || (list_item_supports_id? doc)
|
@@ -26,7 +29,9 @@ module Asciidoctor
|
|
26
29
|
tab_ids = labels.map do |tab|
|
27
30
|
tabs << tab
|
28
31
|
tab_id = generate_id tab.text, doc, tabs_id
|
29
|
-
|
32
|
+
tab_source_text = tab.instance_variable_get :@text
|
33
|
+
set_id_on_tab ? (tab.id = tab_id) : (tab.text = %([[#{tab_id}]]#{tab_source_text}))
|
34
|
+
(doc.register :refs, [tab_id, tab]).set_attr 'reftext', tab_source_text
|
30
35
|
tab_id
|
31
36
|
end
|
32
37
|
if content
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-tabs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.alpha.
|
4
|
+
version: 1.0.0.alpha.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|