jekyll-theme-amethyst 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/github-pages.yaml +2 -2
- data/.github/workflows/typesense.yaml +29 -0
- data/Gemfile +0 -2
- data/README.md +21 -0
- data/_config.yml +5 -16
- data/_data/sidebar_api.yml +8 -4
- data/_includes/opengraph.html +6 -0
- data/_includes/search.html +3 -11
- data/_includes/version.html +2 -2
- data/_layouts/group.html +1 -0
- data/_layouts/page-api.html +26 -17
- data/_layouts/post.html +3 -3
- data/_layouts/posts-archive.html +2 -0
- data/_layouts/posts-author.html +2 -0
- data/_layouts/posts-tag.html +2 -0
- data/_layouts/posts-year.html +2 -0
- data/_layouts/posts.html +3 -0
- data/_layouts/wrapper.html +22 -14
- data/_sass/amethyst.scss +43 -221
- data/amethyst.gemspec +1 -1
- data/assets/styles.scss +2 -0
- data/assets/typesense-minibar.css +223 -0
- data/assets/typesense-minibar.js +163 -0
- data/docs/config.md +6 -55
- data/docs/getting-started.md +9 -25
- data/docsearch.config.json +60 -0
- metadata +7 -6
- data/.github/workflows/doc-search.yaml +0 -25
- data/_includes/search-js.html +0 -113
- data/assets/logo-algolia.svg +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9eb8365c83817b28e320f98115fd844f545cb6ffea498929bf019491a0a348f1
|
4
|
+
data.tar.gz: 68aa630aa212dcde459e337439147af95841d37afcf255d05a7a276de628c598
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a1046d94dc73a148f6a1f577a3b779721a0516558fedcf2ba05c0ea2d69c4a4e0b463d0408877dea7c9a36b107f85b7af7ba9a47698a5f0c22e95b4b0ff39f9
|
7
|
+
data.tar.gz: 8658b2601fe8ddaf4bfc3c4fcd87f7154ed095306a51ef445c7ff8c05b4852a0c930c0dc193b1db1844dcf80b47a787381a1922be93e0c55793842b0fee05765
|
@@ -22,11 +22,11 @@ jobs:
|
|
22
22
|
git clone --depth 5 --branch "${DEPLOY_BRANCH}" "https://github.com/${GITHUB_REPOSITORY}.git" . || git init -b "${DEPLOY_BRANCH}"
|
23
23
|
|
24
24
|
- uses: ruby/setup-ruby@v1
|
25
|
-
# If your site is in a subdirectory
|
26
|
-
# working-directory: ./
|
27
25
|
with:
|
28
26
|
ruby-version: 2.7
|
29
27
|
bundler-cache: true
|
28
|
+
# If your site is in a subdirectory
|
29
|
+
# working-directory: ./
|
30
30
|
|
31
31
|
- name: Jekyll build
|
32
32
|
# If your site is in a subdirectory
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: typesense
|
2
|
+
on:
|
3
|
+
# Once a week on Wednesday at 11:45 UTC <https://crontab.guru/>
|
4
|
+
schedule:
|
5
|
+
- cron: '45 11 * * 3'
|
6
|
+
# Or after a deployment
|
7
|
+
push:
|
8
|
+
branches:
|
9
|
+
- main
|
10
|
+
- typesense
|
11
|
+
# Or manually
|
12
|
+
workflow_dispatch:
|
13
|
+
jobs:
|
14
|
+
typesense:
|
15
|
+
name: Update Typesense
|
16
|
+
if: ${{ github.repository_owner == 'qunitjs' }} # skip on forks
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v3
|
20
|
+
- name: Docsearch Scraper
|
21
|
+
shell: bash
|
22
|
+
run: |
|
23
|
+
docker run \
|
24
|
+
-e TYPESENSE_API_KEY=${{ secrets.TYPESENSE_ADMIN_KEY }} \
|
25
|
+
-e TYPESENSE_HOST="${{ secrets.TYPESENSE_HOST }}" \
|
26
|
+
-e TYPESENSE_PORT="443" \
|
27
|
+
-e TYPESENSE_PROTOCOL="https" \
|
28
|
+
-e CONFIG="$(cat docsearch.config.json | jq -r tostring)" \
|
29
|
+
typesense/docsearch-scraper:0.6.0.rc2
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
[![Build Status: spider-check](https://github.com/qunitjs/jekyll-theme-amethyst/actions/workflows/spider-check.yaml/badge.svg)](https://github.com/qunitjs/jekyll-theme-amethyst/actions/workflows/spider-check.yaml)
|
2
|
+
[![rubygems.org: jekyll-theme-amethyst](https://badge.fury.io/rb/jekyll-theme-amethyst.svg)](https://rubygems.org/gems/jekyll-theme-amethyst)
|
2
3
|
|
3
4
|
# Amethyst theme
|
4
5
|
|
@@ -17,6 +18,8 @@ Thanks to [Leo Balter](https://github.com/leobalter) for initiating the use of M
|
|
17
18
|
|
18
19
|
## Contributing
|
19
20
|
|
21
|
+
### Local development
|
22
|
+
|
20
23
|
Requirements:
|
21
24
|
|
22
25
|
* [Ruby](https://www.ruby-lang.org/) (tested with Ruby 2.7+)
|
@@ -33,3 +36,21 @@ To generate the site and serve it locally at <http://localhost:4000/>:
|
|
33
36
|
```shell
|
34
37
|
bundle exec jekyll serve
|
35
38
|
```
|
39
|
+
|
40
|
+
### Releasing
|
41
|
+
|
42
|
+
* Edit `amethyst.gemspec` and set the next release number.
|
43
|
+
* Stage and commit the changes:
|
44
|
+
```
|
45
|
+
git add -p
|
46
|
+
git commit
|
47
|
+
# Tag v0.0.0
|
48
|
+
git push
|
49
|
+
```
|
50
|
+
* Create a signed semver tag, and push it:
|
51
|
+
```
|
52
|
+
git tag -s v0.0.0
|
53
|
+
# Tag v0.0.0
|
54
|
+
git push --tags
|
55
|
+
```
|
56
|
+
* CI will create and publish a new package to <https://rubygems.org/gems/jekyll-theme-amethyst>.
|
data/_config.yml
CHANGED
@@ -45,9 +45,11 @@ amethyst:
|
|
45
45
|
release_base: https://github.com/qunitjs/qunit/releases/tag/
|
46
46
|
github: qunitjs
|
47
47
|
gitter: qunitjs/qunit
|
48
|
-
# https://github.com/qunitjs/jekyll-theme-amethyst/blob/main/docs/getting-started.md#enable-
|
49
|
-
|
50
|
-
|
48
|
+
# https://github.com/qunitjs/jekyll-theme-amethyst/blob/main/docs/getting-started.md#enable-typesense
|
49
|
+
typesense:
|
50
|
+
origin: https://typesense.jquery.com
|
51
|
+
collection: amethyst_demo
|
52
|
+
search_only_api_key: Zh8mMgohXECel9wjPwqT7lekLSG3OCgz
|
51
53
|
|
52
54
|
|
53
55
|
# Conversion settings
|
@@ -67,19 +69,6 @@ sass:
|
|
67
69
|
sourcemap: never
|
68
70
|
|
69
71
|
|
70
|
-
# Backend search settings
|
71
|
-
#
|
72
|
-
# Docs: https://github.com/algolia/jekyll-algolia
|
73
|
-
algolia:
|
74
|
-
application_id: 4HMKKPGKKN
|
75
|
-
index_name: amethyst-demo
|
76
|
-
# By default only HTML paragraphs are indexed (and headings, albeit through a different mechanism).
|
77
|
-
# * Include list items (similar to paragraphs).
|
78
|
-
# * Include tables (index per row for better excerpts).
|
79
|
-
# * Include <pre> (typically code examples, omit if it "poisons" results too much).
|
80
|
-
nodes_to_index: "p,li,tr,pre"
|
81
|
-
|
82
|
-
|
83
72
|
# Blog archives
|
84
73
|
#
|
85
74
|
# Docs: https://github.com/jekyll/jekyll-archives/
|
data/_data/sidebar_api.yml
CHANGED
@@ -4,10 +4,14 @@
|
|
4
4
|
|
5
5
|
- group: lorem
|
6
6
|
|
7
|
-
-
|
8
|
-
|
7
|
+
- group: deprecated
|
8
|
+
expand: false
|
9
9
|
title: Deprecated
|
10
10
|
|
11
|
-
-
|
12
|
-
|
11
|
+
- group: removed
|
12
|
+
expand: false
|
13
13
|
title: Removed
|
14
|
+
|
15
|
+
- type: link
|
16
|
+
url: /api/foo/quux/
|
17
|
+
title: Quux
|
data/_includes/opengraph.html
CHANGED
@@ -45,5 +45,11 @@
|
|
45
45
|
{% endif %}
|
46
46
|
<meta name="twitter:card" content="summary_large_image">
|
47
47
|
|
48
|
+
|
49
|
+
{% if layout.amethyst.pagetype == "navigation" %}
|
50
|
+
<meta name="robots" content="{{ layout.amethyst.robots | default: 'noindex,follow' }}">
|
51
|
+
<meta name="docsearch:amethyst_pagetype_navigation" content="1">
|
52
|
+
{% endif %}
|
53
|
+
|
48
54
|
{% endcapture -%}
|
49
55
|
{{ opengraph | strip_newlines }}
|
data/_includes/search.html
CHANGED
@@ -1,14 +1,6 @@
|
|
1
|
-
<form class="site-
|
2
|
-
<
|
3
|
-
<input type="
|
4
|
-
<input type="hidden" name="sites" value="{{ site.url | remove_first: 'http://' | remove_first: 'https://' }}">
|
5
|
-
<svg class="aa-input-icon" viewBox="654 -372 1664 1664" height="20">
|
6
|
-
<path d="M1806,332c0-123.3-43.8-228.8-131.5-316.5C1586.8-72.2,1481.3-116,1358-116s-228.8,43.8-316.5,131.5 C953.8,103.2,910,208.7,910,332s43.8,228.8,131.5,316.5C1129.2,736.2,1234.7,780,1358,780s228.8-43.8,316.5-131.5 C1762.2,560.8,1806,455.3,1806,332z M2318,1164c0,34.7-12.7,64.7-38,90s-55.3,38-90,38c-36,0-66-12.7-90-38l-343-342 c-119.3,82.7-252.3,124-399,124c-95.3,0-186.5-18.5-273.5-55.5s-162-87-225-150s-113-138-150-225S654,427.3,654,332 s18.5-186.5,55.5-273.5s87-162,150-225s138-113,225-150S1262.7-372,1358-372s186.5,18.5,273.5,55.5s162,87,225,150s113,138,150,225 S2062,236.7,2062,332c0,146.7-41.3,279.7-124,399l343,343C2305.7,1098.7,2318,1128.7,2318,1164z"/>
|
7
|
-
</svg>
|
1
|
+
<form role="search" class="tsmb-form"{%- if site.amethyst.typesense.search_only_api_key -%} data-origin="{{ site.amethyst.typesense.origin | escape }}" data-collection="{{ site.amethyst.typesense.collection | escape }}" data-key="{{ site.amethyst.typesense.search_only_api_key | escape }}" data-foot="true"{%- endif -%} action="https://duckduckgo.com">
|
2
|
+
<input type="search" name="q" aria-label="Search" placeholder="Search..." autocomplete="off">
|
3
|
+
<input type="hidden" name="sites" value="{{ site.url | remove_first: 'http://' | remove_first: 'https://' }}">
|
8
4
|
</form>
|
9
5
|
|
10
|
-
{%- comment -%}
|
11
6
|
|
12
|
-
See also search-js.html
|
13
|
-
|
14
|
-
{%- endcomment -%}
|
data/_includes/version.html
CHANGED
@@ -22,7 +22,7 @@ Parameters:
|
|
22
22
|
{%- endif -%}
|
23
23
|
|
24
24
|
{%- if include.version == "unreleased" -%}
|
25
|
-
not yet released
|
25
|
+
not yet released<span class="sep">.</span>
|
26
26
|
{%- else -%}
|
27
|
-
{{ include.label }}: {% if site.amethyst.release_base %}<a href="{{ site.amethyst.release_base }}{{ _full_version | escape }}">{{ include.version | escape }}</a>{% else %}{{ include.version | escape }}{% endif %}
|
27
|
+
{{ include.label }}: {% if site.amethyst.release_base %}<a href="{{ site.amethyst.release_base }}{{ _full_version | escape }}">{{ include.version | escape }}</a>{% else %}{{ include.version | escape }}{% endif %}<span class="sep">.</span>
|
28
28
|
{%- endif -%}
|
data/_layouts/group.html
CHANGED
data/_layouts/page-api.html
CHANGED
@@ -27,29 +27,38 @@ do that here for convenience.
|
|
27
27
|
{%- endunless -%}
|
28
28
|
<div class="main main--columns wrapper">
|
29
29
|
<div class="content" role="main">
|
30
|
+
<article>
|
31
|
+
<header>
|
30
32
|
<h1>{{ page.title }}</h1>
|
31
|
-
{
|
33
|
+
{% if page.groups -%}
|
34
|
+
<p class="post-meta">Categories: {% comment %} space {% endcomment -%}
|
35
|
+
{%- for group in page.groups -%}
|
36
|
+
{%- if page.groups.first != group %}, {% endif -%}
|
37
|
+
{%- assign group_page = site.pages | where: "layout", "group" | where: "group", group | first -%}
|
38
|
+
<a class="category" href="{{ group_page.url | relative_url }}">{{ group_page.title | escape }}</a>
|
39
|
+
{%- endfor -%}
|
40
|
+
.</p>
|
41
|
+
{%- endif %}
|
42
|
+
</header>
|
43
|
+
{% if page.version_added or page.version_deprecated -%}
|
32
44
|
{%- assign warning = false -%}
|
33
45
|
{%- if page.version_added == "unreleased" or page.version_deprecated or page.version_removed -%}
|
34
46
|
{%- assign warning = true -%}
|
35
47
|
{%- endif -%}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
{
|
42
|
-
|
43
|
-
|
44
|
-
{
|
45
|
-
|
46
|
-
|
47
|
-
{%- endif -%}
|
48
|
-
{%- endcapture -%}
|
49
|
-
{{ lines | strip | newline_to_br }}
|
50
|
-
</p>
|
48
|
+
<p class="version-details">
|
49
|
+
{%- if page.version_added %}
|
50
|
+
{% include version.html version=page.version_added label="version added" %}
|
51
|
+
{%- endif -%}
|
52
|
+
{%- if page.version_deprecated %}
|
53
|
+
{% include version.html version=page.version_deprecated label="deprecated" %}
|
54
|
+
{%- endif -%}
|
55
|
+
{%- if page.version_removed %}
|
56
|
+
{% include version.html version=page.version_removed label="removed" %}
|
57
|
+
{%- endif -%}
|
58
|
+
</p>
|
51
59
|
{%- endif %}
|
52
|
-
{{
|
60
|
+
{{ content }}
|
61
|
+
</article>
|
53
62
|
</div>
|
54
63
|
{%- assign toc = true -%}
|
55
64
|
{%- if layout.amethyst.toc == false -%}
|
data/_layouts/post.html
CHANGED
@@ -3,15 +3,15 @@ layout: wrapper
|
|
3
3
|
---
|
4
4
|
|
5
5
|
<div class="main main--columns wrapper">
|
6
|
-
<div class="content">
|
7
|
-
|
6
|
+
<div class="content" role="main">
|
7
|
+
<article>
|
8
8
|
<header>
|
9
9
|
<h1>{{ page.title | escape }}</h1>
|
10
10
|
{%- assign date_format = site.amethyst.date_format | default: "%e %B %Y" -%}
|
11
11
|
<p class="post-meta byline">Posted on <a href="{{ page.url | relative_url }}" rel="bookmark"><time itemprop="pubdate" datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: date_format }}</time></a>{% if page.author %} by <span class="vcard"><span class="fn n" rel="author">{{ page.author | escape }}</span></span>{% endif %}</p>
|
12
12
|
</header>
|
13
13
|
{{ content }}
|
14
|
-
|
14
|
+
</article>
|
15
15
|
{%- comment -%}
|
16
16
|
Support basic read-only rendering of imported comments.
|
17
17
|
|
data/_layouts/posts-archive.html
CHANGED
data/_layouts/posts-author.html
CHANGED
data/_layouts/posts-tag.html
CHANGED
data/_layouts/posts-year.html
CHANGED
data/_layouts/posts.html
CHANGED
data/_layouts/wrapper.html
CHANGED
@@ -15,9 +15,7 @@
|
|
15
15
|
{{ site.title | escape }}
|
16
16
|
{%- endif -%}
|
17
17
|
</a>
|
18
|
-
{%-
|
19
|
-
{%- include search.html -%}
|
20
|
-
{%- endif -%}
|
18
|
+
{%- include search.html -%}
|
21
19
|
<nav class="site-nav"><ul class="site-nav-list">
|
22
20
|
{%- for item in site.data.sitenav -%}
|
23
21
|
<li class="site-nav-item{%- if item.sub %} has-sub-list{% endif %}">
|
@@ -35,8 +33,7 @@
|
|
35
33
|
{%- endfor -%}
|
36
34
|
</ul></nav>
|
37
35
|
<div class="site-toggles">
|
38
|
-
|
39
|
-
<button class="search-toggle toggle" data-opens=".site-search" aria-expanded="false">
|
36
|
+
<button class="search-toggle toggle" aria-expanded="false">
|
40
37
|
<span class="screen-reader-text">Search</span>
|
41
38
|
<svg class="icon aa-input-icon" aria-hidden="true" viewBox="654 -372 1664 1664" height="20">
|
42
39
|
<path d="M1806,332c0-123.3-43.8-228.8-131.5-316.5C1586.8-72.2,1481.3-116,1358-116s-228.8,43.8-316.5,131.5 C953.8,103.2,910,208.7,910,332s43.8,228.8,131.5,316.5C1129.2,736.2,1234.7,780,1358,780s228.8-43.8,316.5-131.5 C1762.2,560.8,1806,455.3,1806,332z M2318,1164c0,34.7-12.7,64.7-38,90s-55.3,38-90,38c-36,0-66-12.7-90-38l-343-342 c-119.3,82.7-252.3,124-399,124c-95.3,0-186.5-18.5-273.5-55.5s-162-87-225-150s-113-138-150-225S654,427.3,654,332 s18.5-186.5,55.5-273.5s87-162,150-225s138-113,225-150S1262.7-372,1358-372s186.5,18.5,273.5,55.5s162,87,225,150s113,138,150,225 S2062,236.7,2062,332c0,146.7-41.3,279.7-124,399l343,343C2305.7,1098.7,2318,1128.7,2318,1164z"/>
|
@@ -44,16 +41,17 @@
|
|
44
41
|
</button>
|
45
42
|
<script type="module">
|
46
43
|
const searchToggle = document.querySelector('.search-toggle');
|
47
|
-
const
|
44
|
+
const searchForm = document.querySelector('form[role=search]');
|
45
|
+
const searchInput = searchForm.querySelector('input[type=search]');
|
48
46
|
searchToggle.addEventListener('click', () => {
|
49
|
-
const
|
50
|
-
searchToggle.
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
const newState = searchToggle.getAttribute('aria-expanded') !== 'true';
|
48
|
+
searchToggle.setAttribute('aria-expanded', String(newState));
|
49
|
+
searchForm.style.display = newState ? 'block' : '';
|
50
|
+
if (newState) {
|
51
|
+
searchInput.focus();
|
52
|
+
}
|
54
53
|
});
|
55
54
|
</script>
|
56
|
-
{%- endif %}
|
57
55
|
<button class="nav-toggle toggle" data-opens=".site-nav" aria-expanded="false">
|
58
56
|
<span class="screen-reader-text">Menu</span>
|
59
57
|
<svg class="icon icon-nav-toggle" aria-hidden="true" viewBox="0 0 100 100" height="20">
|
@@ -103,8 +101,18 @@
|
|
103
101
|
</p>
|
104
102
|
</div>
|
105
103
|
</footer>
|
106
|
-
{%-
|
107
|
-
|
104
|
+
{%- comment -%}
|
105
|
+
|
106
|
+
We use type="module" as a natural way to cut the mustard,
|
107
|
+
executing the script only on modern browsers with ES6 support,
|
108
|
+
and causing no errors on older browsers.
|
109
|
+
|
110
|
+
<https://responsivenews.tumblr.com/post/18948466399/cutting-the-mustard>
|
111
|
+
<http://web.archive.org/web/20150305005331/http://responsivenews.co.uk/post/18948466399/cutting-the-mustard>
|
112
|
+
|
113
|
+
{%- endcomment -%}
|
114
|
+
{%- if site.amethyst.typesense.search_only_api_key -%}
|
115
|
+
<script defer type="module" src="{{ '/assets/typesense-minibar.js' | file_version_query | relative_url }}"></script>
|
108
116
|
{%- endif -%}
|
109
117
|
</body>
|
110
118
|
</html>
|