open-source-documentation-jekyll-theme 1.1.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.
@@ -0,0 +1,80 @@
1
+ (function() {
2
+ // The addEvent function is a cross-browser way to add event listeners to elements. It checks if the browser supports addEventListener (modern browsers) and uses it if available. If not, it falls back to attachEvent (older versions of Internet Explorer). This ensures that the event handling works across different browsers.
3
+ function addEvent(el, event, handler) {
4
+ if (el.addEventListener) {
5
+ el.addEventListener(event, handler);
6
+ } else if (el.attachEvent) {
7
+ el.attachEvent('on' + event, handler);
8
+ }
9
+ }
10
+
11
+ // Handle menu toggle clicks
12
+ var menuToggleElement = document.getElementById('menu-toggle');
13
+ if (menuToggleElement !== null) {
14
+ addEvent(menuToggleElement, 'click', function(e) {
15
+ e = e || window.event;
16
+ if (document.body.className.indexOf('menu-open') >= 0) {
17
+ document.body.className = document.body.className.replace(/\s*menu-open\s*/g, ' ').replace(/^\s+|\s+$/g, ''); // .replace(/^\s+|\s+$/g, '') works the same as .trim() but is more widely supported by older browsers
18
+ menuToggleElement.setAttribute('aria-expanded', 'false');
19
+ } else {
20
+ document.body.className = (document.body.className + ' menu-open').replace(/^\s+|\s+$/g, ''); // .replace(/^\s+|\s+$/g, '') works the same as .trim() but is more widely supported by older browsers
21
+ menuToggleElement.setAttribute('aria-expanded', 'true');
22
+ }
23
+ if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; }
24
+ if (e.stopPropagation) { e.stopPropagation(); } else { e.cancelBubble = true; }
25
+ });
26
+
27
+ // <span role='button'> doesn’t synthesize click on Space like native <a>/<button> elements do
28
+ if (menuToggleElement.tagName !== 'A') {
29
+ addEvent(menuToggleElement, 'keydown', function(e) {
30
+ e = e || window.event;
31
+ if (e.key === ' ' || e.key === 'Enter' || e.keyCode === 32 || e.keyCode === 13) {
32
+ if (e.preventDefault) { e.preventDefault(); } else { e.returnValue = false; }
33
+ menuToggleElement.click();
34
+ }
35
+ });
36
+ }
37
+ }
38
+
39
+ // Inject <span class='copy-code'> elements into code blocks
40
+ if (document.querySelectorAll) { // Only inject the elements if the browser supports querySelectorAll (IE8+) otherwise we skip them
41
+ document.addEventListener('DOMContentLoaded', function() {
42
+ var codeBlocks = document.querySelectorAll('pre code');
43
+
44
+ Array.prototype.forEach.call(codeBlocks, function(codeBlock) {
45
+ var span = document.createElement('span');
46
+ span.innerHTML = '<i class="fa-solid fa-copy"></i>Copy';
47
+ span.className = 'copy-code';
48
+ span.title = 'Copy';
49
+ span.addEventListener('click', function() {
50
+ if (navigator.clipboard) {
51
+ navigator.clipboard.writeText(codeBlock.textContent).then(function() {
52
+ span.innerHTML = 'Copied &#10003;';
53
+ });
54
+ } else {
55
+ var range = document.createRange();
56
+ range.selectNodeContents(codeBlock);
57
+ var selection = window.getSelection();
58
+ selection.removeAllRanges();
59
+ selection.addRange(range);
60
+
61
+ try {
62
+ document.execCommand('copy');
63
+ span.innerHTML = 'Copied &#10003;';
64
+ } catch(e) {
65
+ }
66
+
67
+ selection.removeAllRanges();
68
+ }
69
+
70
+ setTimeout(function() {
71
+ span.innerHTML = '<i class="fa-solid fa-copy"></i>Copy';
72
+ }, 5000); // Reset the button text after 5 seconds
73
+ });
74
+
75
+ var pre = codeBlock.parentNode;
76
+ pre.parentNode.insertBefore(span, pre);
77
+ });
78
+ });
79
+ }
80
+ })();
@@ -0,0 +1 @@
1
+ (()=>{function e(e,t,n){e.addEventListener?e.addEventListener(t,n):e.attachEvent&&e.attachEvent("on"+t,n)}var t=document.getElementById("menu-toggle");null!==t&&(e(t,"click",function(e){e=e||window.event,0<=document.body.className.indexOf("menu-open")?(document.body.className=document.body.className.replace(/\s*menu-open\s*/g," ").replace(/^\s+|\s+$/g,""),t.setAttribute("aria-expanded","false")):(document.body.className=(document.body.className+" menu-open").replace(/^\s+|\s+$/g,""),t.setAttribute("aria-expanded","true")),e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}),"A"!==t.tagName)&&e(t,"keydown",function(e){" "!==(e=e||window.event).key&&"Enter"!==e.key&&32!==e.keyCode&&13!==e.keyCode||(e.preventDefault?e.preventDefault():e.returnValue=!1,t.click())}),document.querySelectorAll&&document.addEventListener("DOMContentLoaded",function(){var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,function(n){var o=document.createElement("span"),e=(o.innerHTML='<i class="fa-solid fa-copy"></i>Copy',o.className="copy-code",o.title="Copy",o.addEventListener("click",function(){if(navigator.clipboard)navigator.clipboard.writeText(n.textContent).then(function(){o.innerHTML="Copied &#10003;"});else{var e=document.createRange(),t=(e.selectNodeContents(n),window.getSelection());t.removeAllRanges(),t.addRange(e);try{document.execCommand("copy"),o.innerHTML="Copied &#10003;"}catch(e){}t.removeAllRanges()}setTimeout(function(){o.innerHTML='<i class="fa-solid fa-copy"></i>Copy'},5e3)}),n.parentNode);e.parentNode.insertBefore(o,e)})})})();
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: open-source-documentation-jekyll-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrew G. Johnson
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: jekyll
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '4.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '5.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '4.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '5.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: bundler
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '2.3'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: '2.3'
46
+ email:
47
+ - andrew@andrewgjohnson.com
48
+ executables: []
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - CHANGELOG.md
53
+ - LICENSE
54
+ - README.md
55
+ - _layouts/default.html
56
+ - assets/css/highlight-js.min.css
57
+ - assets/css/stylesheet.css
58
+ - assets/css/stylesheet.min.css
59
+ - assets/images/avatar.png
60
+ - assets/images/cover/forest.jpg
61
+ - assets/images/cover/mountains.jpg
62
+ - assets/images/installs-badge.png
63
+ - assets/images/patreon-badge.png
64
+ - assets/js/highlight-js.min.js
65
+ - assets/js/javascript.js
66
+ - assets/js/javascript.min.js
67
+ homepage: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme
68
+ licenses:
69
+ - MIT
70
+ metadata:
71
+ plugin_type: theme
72
+ source_code_uri: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme
73
+ bug_tracker_uri: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/issues
74
+ changelog_uri: https://github.com/andrewgjohnson/open-source-documentation-jekyll-theme/blob/main/CHANGELOG.md
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.7.0
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubygems_version: 4.0.10
90
+ specification_version: 4
91
+ summary: A Jekyll theme for open source project documentation sites.
92
+ test_files: []