jekyll-theme-isotc211 0.5.9 → 1.0.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +106 -140
  3. data/_config.yml +25 -81
  4. data/_frontend/css/footer.css +117 -0
  5. data/_frontend/css/header.css +160 -0
  6. data/_frontend/css/home.css +553 -0
  7. data/_frontend/css/page.css +191 -0
  8. data/_frontend/css/typography.css +35 -0
  9. data/_frontend/entrypoints/application.css +68 -0
  10. data/_frontend/entrypoints/application.js +5 -0
  11. data/_frontend/js/theme.js +34 -0
  12. data/_includes/footer.html +80 -0
  13. data/_includes/google-analytics.html +7 -0
  14. data/_includes/head.html +24 -39
  15. data/_includes/header.html +42 -0
  16. data/_includes/icons/moon.html +1 -0
  17. data/_includes/icons/sun.html +1 -0
  18. data/_layouts/base.html +5 -0
  19. data/_layouts/default.html +11 -163
  20. data/_layouts/home.html +22 -7
  21. data/_layouts/page.html +1 -2
  22. data/_layouts/post.html +15 -10
  23. data/_layouts/posts.html +24 -7
  24. data/assets/iso-red.svg +1 -0
  25. data/config/vite-theme-resolve.js +23 -0
  26. data/config/vite.json +15 -0
  27. metadata +25 -147
  28. data/_data/placeholder.yml +0 -0
  29. data/_includes/_title.html +0 -2
  30. data/_includes/copyright.html +0 -24
  31. data/_includes/newsroll-entry.html +0 -17
  32. data/_includes/resource-tree-item.html +0 -49
  33. data/_includes/script.html +0 -0
  34. data/_layouts/base-page.html +0 -37
  35. data/_layouts/resource-index.html +0 -14
  36. data/_layouts/resource-page.html +0 -25
  37. data/_pages/404.adoc +0 -19
  38. data/_sass/adoc-markup.scss +0 -197
  39. data/_sass/expandable-nav.scss +0 -187
  40. data/_sass/home.scss +0 -87
  41. data/_sass/jekyll-theme-isotc211.scss +0 -146
  42. data/_sass/legacy-crossbrowser.scss +0 -67
  43. data/_sass/main.scss +0 -413
  44. data/_sass/normalize.scss +0 -424
  45. data/_sass/offsets.scss +0 -59
  46. data/_sass/post.scss +0 -16
  47. data/_sass/posts.scss +0 -18
  48. data/assets/js/ga.js +0 -15
  49. data/assets/js/nav.js +0 -125
  50. data/assets/js/resource-browser.js +0 -79
  51. data/assets/resource-viewer-placeholder.html +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6a97ab90aa68b7a0a1be2b559322d789da9df61e33d0a98c2bd37ec4c81a1221
4
- data.tar.gz: ba0c76651e5ea1393f00be92c855a7b5910437982c01dcad18c6c91957bc180e
3
+ metadata.gz: 482d1d5747fe0dadc1c23bba86430df036e18fe766f4c7342a547197a072b771
4
+ data.tar.gz: 59e2cd6ae9a73341a09fca839debb43ed37072ba8f8f64b4dcc083e5204b483d
5
5
  SHA512:
6
- metadata.gz: ab7be9ae97a0da72b3c2057e82c0d36d5d92e7141930063f1606e3e17e0927ebf882d54529bc78ddc10950f74ccfdd257d08ba9cbbc77e4aecfb71ae572ebe42
7
- data.tar.gz: bdc1faaba3de5b2b668aa4aaf836c25e577e91e50939d413744c783d15bbd34e9ea293125ff2ff50ca2ce012d9bd3e2174da91b57a67e0a096b6737ae9d385fe
6
+ metadata.gz: 7b651ba082ef22a067a3aef87f62a3b4cf87a901174629460f0601bdf9f0335f710709a006d1e2c40ce789eb969776d5bf9760f385d1f7d354df8bad91908f17
7
+ data.tar.gz: 0a7663f06a5cda88124909a96efdd466d8c231fbfe5a1ad832f13407f4ec135c336482d14d6fc6832af85272cd4f9ca17934247c5dd74d28d7f09d43ce445d2a
data/README.md CHANGED
@@ -1,73 +1,83 @@
1
- # ISO/TC211 theme by Ribose
1
+ # jekyll-theme-isotc211
2
2
 
3
- This is a theme used across ISO/TC211 sites powered by Ribose,
4
- including https://www.isotc211.org
5
- and resource sites such as https://geolexica.org/, https://def.isotc211.org/.
3
+ Modern Jekyll theme for ISO/TC 211 resource sites Vite 7, Tailwind CSS v4,
4
+ dark mode, Inter font, responsive design.
6
5
 
6
+ Used by [www.isotc211.org](https://www.isotc211.org),
7
+ [registry.isotc211.org](https://registry.isotc211.org), and
8
+ [standards.isotc211.org](https://standards.isotc211.org).
7
9
 
8
- ## Configuring site
9
10
 
10
- Theme relies on accompanying helper plugin
11
- (note: plugin gem version should match theme version):
11
+ ## Installation
12
12
 
13
- ```
14
- group :jekyll_plugins do
15
- gem "jekyll-theme-isotc211-helpers"
16
- # ...
17
- end
13
+ Add to your Gemfile:
14
+
15
+ ```ruby
16
+ gem "jekyll-theme-isotc211", "~> 1.0"
18
17
  ```
19
18
 
20
- Other recommended plugins to add to your Gemfile:
19
+ And to `_config.yml`:
21
20
 
21
+ ```yaml
22
+ theme: jekyll-theme-isotc211
22
23
  ```
23
- group :jekyll_plugins do
24
- gem "jekyll-theme-isotc211-helpers"
25
24
 
26
- # ...
27
- gem "jekyll-data"
28
- gem "jekyll-asciidoc"
29
- gem "jekyll-external-links"
25
+ Your site also needs `jekyll-vite`:
26
+
27
+ ```ruby
28
+ group :jekyll_plugins do
29
+ gem "jekyll-vite"
30
30
  end
31
31
  ```
32
32
 
33
- Configuration keys:
34
-
33
+ And a `package.json` with Vite + Tailwind:
34
+
35
+ ```json
36
+ {
37
+ "private": true,
38
+ "type": "module",
39
+ "devDependencies": {
40
+ "@tailwindcss/postcss": "^4",
41
+ "@tailwindcss/typography": "^0.5",
42
+ "postcss": "^8",
43
+ "tailwindcss": "^4",
44
+ "terser": "^5",
45
+ "vite": "^7",
46
+ "vite-plugin-ruby": "^5"
47
+ }
48
+ }
35
49
  ```
36
- title: <site title to be used in meta and in body>
37
- title_html: <if specified, is used in body instead of title>
38
50
 
39
- font_awesome_kit_url: <url to your FA kit, free kits are OK with stock theme version>
40
51
 
41
- google_analytics:
42
- id: UA-XXXXXX-X
52
+ ## Configuration
43
53
 
44
- committee:
45
- id: <numerical committee ID>
46
- name: <full committee name>
47
- home: <committee homepage, probably on iso.org>
48
- links:
49
- - url: /about
50
- title: About
51
- - url: /strategic-policy
52
- title: Strategic Policy Statement
53
- - url: /faq
54
- title: FAQ
54
+ ```yaml
55
+ title: "Resource site for ISO/TC 211 Geographic information/Geomatics"
56
+ title_html: "ISO/TC&nbsp;211"
57
+ brand_sub: "Harmonized Resources Maintenance Agency"
58
+ description: "Resource site description"
55
59
 
56
- # Builds browsable resource pages
57
- resource_listings:
58
- schemas:
59
- # Source directory containing resources, relative to site source root.
60
- # Each subdirectory within will be treated as a resource
61
- resource_root: 'schemas'
60
+ header_logo: "/assets/iso-red.svg" # Optional, defaults to iso-red.svg
62
61
 
63
- # The path, under which resource browser will be available to site visitors
64
- index_url: 'schemas'
62
+ google_analytics:
63
+ id: UA-XXXXX-Y
65
64
 
66
- # These control resource index & individual resource pages
67
- index_title: "Schemas"
68
- resource_label: "schema"
65
+ committee:
66
+ id: 211
67
+ name: Geographic information/Geomatics
68
+ home: https://committee.iso.org/home/tc211
69
+
70
+ nav:
71
+ - title: About
72
+ url: /about/
73
+ - title: Blog
74
+ url: /posts/
69
75
 
70
- always_show_committee_link_on_landing: yes
76
+ footer_links:
77
+ - title: Geodetic Registry
78
+ url: https://geodetic.isotc211.org/
79
+ - title: Schemas
80
+ url: https://schemas.isotc211.org
71
81
 
72
82
  awards:
73
83
  - title: 2010 Lawrence D. Eicher Leadership Award
@@ -75,116 +85,72 @@ awards:
75
85
 
76
86
  social:
77
87
  links:
78
- - url: https://twitter.com/<account>
79
- - url: https://github.com/<org>
80
- - url: https://www.facebook.com/groups/<group ID>/
81
- - url: https://www.linkedin.com/groups/<group ID>
82
-
83
- # Committee site maintainer
84
- powered_by:
85
- title: <organization name>
86
- url: <organization site>
87
- logo_path: /assets/<logo-filename.svg>
88
-
89
- # Primary navigation
90
- nav:
91
- items:
92
- - id: home
93
- url: /
94
- title: Home
95
- description: Standard resource links & latest news
96
- - id: news
97
- url: /posts
98
- title: News & Articles
99
-
100
- # Footer navigation (example)
101
- footer_nav:
102
- - url: <committee site URL>
103
- title: ISO/TC XXX
104
- ```
105
-
106
-
107
- ## Contributing
108
-
109
- Bug reports and pull requests are welcome on GitHub
110
- at https://github.com/riboseinc/jekyll-theme-isotc211.
111
-
112
- This project is intended to be a safe, welcoming space for collaboration,
113
- and contributors are expected to adhere
114
- to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
115
-
116
-
117
- ## Theme development
88
+ - url: https://twitter.com/ISOTC211
89
+ - url: https://github.com/ISO-TC211
118
90
 
119
- Generally, this directory is setup like a Jekyll site. To set it up,
120
- run `bundle install`.
121
-
122
- To experiment with this code, add content (projects, software, specs)
123
- and run `bundle exec jekyll serve`. This starts a Jekyll server
124
- using this theme at `http://localhost:4000`.
125
-
126
- Put your layouts in `_layouts`, your includes in `_includes`,
127
- your sass files in `_sass` and any other assets in `assets`.
128
-
129
- Add pages, documents, data, etc. like normal to test your theme's contents.
130
-
131
- As you make modifications to your theme and to your content, your site will
132
- regenerate and you should see the changes in the browser after a refresh,
133
- like normal.
91
+ favicon_svg: "/assets/favicon.svg"
92
+ favicon_ico: "/assets/favicon.ico"
93
+ ```
134
94
 
135
- When your theme is released, only files specified with gemspec file
136
- will be included. If you modify theme to add more directories that
137
- need to be included in the gem, edit regexp in the gemspec.
138
95
 
139
- ### Building and releasing
96
+ ## Layouts
140
97
 
141
- #### Manual test during development
98
+ | Layout | Description |
99
+ |--------|-------------|
100
+ | `default` | Full page: head, header, main, footer, Vite JS |
101
+ | `base` | Raw content pass-through |
102
+ | `home` | Content + optional news roll |
103
+ | `page` | Generic content page |
104
+ | `post` | Blog post with illustration support |
105
+ | `posts` | Blog index |
106
+ | `base-page` | Content page with header (for resource browser) |
107
+ | `resource-index` | Resource directory listing |
108
+ | `resource-page` | Two-pane BlueprintJS resource browser |
142
109
 
143
- When you’re working on visual aspects of the theme, it’s useful
144
- to see how it would affect the end result (a site *built with* this theme).
110
+ Sites can override any layout by creating a file with the same name in their
111
+ own `_layouts/` directory.
145
112
 
146
- Here’s how to develop the theme while simultaneously previewing the changes
147
- on a site. The sequence would be as follows, assuming you have a local copy
148
- of this repo and have a Jekyll site using this theme:
149
113
 
150
- 1. For the Jekyll site, change Gemfile to point to local copy
151
- of the theme (the root of this repo) and run `bundle`.
114
+ ## CSS
152
115
 
153
- For example, you’d change `gem "jekyll-theme-isotc211"`
154
- to `gem "jekyll-theme-isotc211", :path => "../jekyll-theme-isotc211"`.
155
- The relative path assumes your site root and theme root are sibling directories.
116
+ The theme provides these CSS files in `_frontend/css/`:
156
117
 
157
- 2. Run `bundle exec jekyll serve` to start Jekyll’s development server.
118
+ | File | Content |
119
+ |------|---------|
120
+ | `header.css` | Fixed glassmorphic header, brand bar, navigation |
121
+ | `footer.css` | Footer grid, links, social icons |
122
+ | `typography.css` | Section labels, headings, meta text |
123
+ | `page.css` | AsciiDoc documentation prose defaults |
124
+ | `home.css` | Sections, blog list, awards, about page |
158
125
 
159
- 3. Make changes to both theme and site directory contents.
126
+ Sites can add their own CSS files and import them in their
127
+ `_frontend/entrypoints/application.js`.
160
128
 
161
- 4. If needed, kill with Ctrl+C then relaunch the serve command
162
- to apply the changes you made to the theme
163
- (it may not reload automatically if changes only affect the theme and not the site
164
- you’re serving).
165
129
 
166
- 4. Once you’re satisfied, release a new version of the theme — see below.
130
+ ## Migration from v0.x
167
131
 
168
- 5. (To later bump the site to this latest version: revert the Gemfile change,
169
- update theme dependency version to the one you’ve just released,
170
- run `bundle --full-index` to update the lockfile,
171
- and your site is ready to go.)
132
+ 1. Remove `font_awesome_kit_url` from `_config.yml`
133
+ 2. Remove `_sass/` directory from site
134
+ 3. Replace `jekyll-plugin-frontend-build` with `jekyll-vite` in Gemfile
135
+ 4. Add Vite config files (`vite.config.ts`, `postcss.config.js`, `config/vite.json`)
136
+ 5. Update `nav` config from `nav.items` array-of-objects to flat `nav` array
137
+ 6. Update `footer_nav` to `footer_links`
138
+ 7. Remove Babel config if present
172
139
 
173
- #### Releasing
174
140
 
175
- Make sure theme works: build script is under construction,
176
- so use good judgement and thorough manual testing.
141
+ ## Development
177
142
 
178
- 1. First, update version number in .gemspec within this repo’s root.
143
+ ```sh
144
+ bundle install
145
+ ```
179
146
 
180
- 2. Then, execute `./develop/release`. This does the following:
147
+ Point a site to the local theme via Gemfile:
181
148
 
182
- * Builds new gem version
183
- * Pushes gem to rubygems.org
184
- * Creates new version tag in this repository
185
- * Pushes changes to GitHub
149
+ ```ruby
150
+ gem "jekyll-theme-isotc211", path: "../jekyll-theme-isotc211"
151
+ ```
186
152
 
187
153
 
188
154
  ## License
189
155
 
190
- The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
156
+ MIT
data/_config.yml CHANGED
@@ -1,98 +1,42 @@
1
- title: "An ISO TC 211 site"
1
+ # Theme defaults sites override these in their own _config.yml
2
+ title: "ISO/TC 211 Site"
3
+ title_html: "ISO/TC&nbsp;211"
4
+ brand_sub: "Geographic information/Geomatics"
5
+ description: "An ISO/TC 211 resource site"
2
6
 
3
7
  email: open.source@ribose.com
4
8
 
5
- description: >-
6
- Welcome to this ISO/TC 211 site.
7
-
8
- # The protocol + domain name of the site
9
- # url: "https://geolexica.com"
10
-
11
- includes_dir: .
12
-
13
9
  markdown: kramdown
14
10
 
15
- permalink: /blog/:month-:day-:year/:title/
16
-
17
- # font_awesome_kit_url: <url>
18
-
19
- # google_analytics:
20
- # id: UA-XXXXX-Y
21
-
22
- # Used for copyright notice and possibly more.
23
- org:
24
- name: International Organization for Standardization
25
- website:
26
- url: https://www.iso.org/
27
- title: www.iso.org
28
- email: copyright@iso.org
29
- address: |-
30
- Chemin de Blandonnet 8
31
- CP 401
32
- 1214 Vernier, Geneva
33
- Switzerland
34
-
35
- # Social profile navigation
36
- # social:
37
- # links:
38
- # - url: https://twitter.com/…
39
- # - url: https://github.com/…
40
- # - url: https://www.facebook.com/groups/…
41
- # - url: https://www.linkedin.com/groups/…
42
-
43
- # committee:
44
- # id: <number>
45
- # name: <full name>
46
- # home: <committee’s external home page URL>
47
- # links:
48
- # - url: /about
49
- # title: About
50
- # - url: /strategic-policy
51
- # title: Strategic Policy Statement
52
- # - url: /faq
53
- # title: FAQ
54
-
55
- # Main site navigation.
56
- # Layouts and pages can specify priority nav items
57
- # using frontmatter key nav_items
58
- # pointing to an array listing nav item IDs.
59
- nav:
60
- items:
61
- - id: posts
62
- url: /posts/
63
- title: News & Articles
64
-
65
- always_show_committee_link_on_landing: no
66
- # Switching this to “yes” will enable the Committee site link
67
- # to appear on landing page even when expandable menu is collapsed.
68
-
69
- # Footer navigation
70
- footer_nav:
71
- - url: https://committee.iso.org/home/tc211
72
- title: ISO/TC 211
11
+ plugins:
12
+ - jekyll/vite
13
+ - jekyll-feed
73
14
 
74
15
  collections:
75
16
  pages:
76
17
  output: true
77
18
  permalink: /:path/
78
19
 
20
+ committee:
21
+ id: 211
22
+ name: Geographic information/Geomatics
23
+
24
+ social:
25
+ links: []
26
+
27
+ nav: []
28
+ footer_links: []
29
+
79
30
  exclude:
80
31
  - Gemfile
81
32
  - Gemfile.lock
82
-
83
- - babel.config.js
84
33
  - package.json
85
34
  - package-lock.json
86
- - monitor.sh
87
35
  - node_modules
88
-
89
- - github_deploy_key.enc
90
- - deploy.sh
91
- - monitor.sh
92
-
93
- - .sass-cache/
94
-
95
- - vendor/bundle/
96
- - vendor/cache/
97
- - vendor/gems/
98
- - vendor/ruby/
36
+ - vendor
37
+ - .sass-cache
38
+ - vite.config.ts
39
+ - postcss.config.js
40
+ - bin
41
+ - _frontend
42
+ - config/vite.json
@@ -0,0 +1,117 @@
1
+ /* ── Site Footer ─────────────────────────────────── */
2
+
3
+ @layer components {
4
+ .site-footer {
5
+ background: #f8fafc;
6
+ border-top: 1px solid rgb(229 231 235 / 0.6);
7
+ padding: 3rem 0;
8
+ transition: background-color 0.2s;
9
+ }
10
+ .dark .site-footer {
11
+ background: #020617;
12
+ border-top-color: rgb(255 255 255 / 0.06);
13
+ }
14
+
15
+ .site-footer__inner {
16
+ max-width: 80rem;
17
+ margin: 0 auto;
18
+ padding: 0 1rem;
19
+ }
20
+ @media (min-width: 640px) {
21
+ .site-footer__inner { padding: 0 1.5rem; }
22
+ }
23
+ @media (min-width: 1024px) {
24
+ .site-footer__inner { padding: 0 2rem; }
25
+ }
26
+
27
+ .site-footer__grid {
28
+ display: grid;
29
+ grid-template-columns: 1fr;
30
+ gap: 2rem;
31
+ margin-bottom: 2rem;
32
+ }
33
+ @media (min-width: 768px) {
34
+ .site-footer__grid { grid-template-columns: repeat(3, 1fr); }
35
+ }
36
+
37
+ .site-footer__logo {
38
+ display: flex;
39
+ align-items: center;
40
+ gap: 0.625rem;
41
+ text-decoration: none;
42
+ }
43
+ .site-footer__logo img { height: 1.75rem; }
44
+ .site-footer__logo-text {
45
+ font-size: 0.875rem;
46
+ font-weight: 700;
47
+ letter-spacing: -0.025em;
48
+ color: #1e293b;
49
+ }
50
+ .dark .site-footer__logo-text { color: #e2e8f0; }
51
+
52
+ .site-footer__tagline {
53
+ font-size: 0.875rem;
54
+ color: #64748b;
55
+ margin-top: 1rem;
56
+ line-height: 1.625;
57
+ }
58
+
59
+ .site-footer__heading {
60
+ font-size: 0.75rem;
61
+ font-weight: 600;
62
+ color: #0f172a;
63
+ text-transform: uppercase;
64
+ letter-spacing: 0.05em;
65
+ margin-bottom: 1rem;
66
+ }
67
+ .dark .site-footer__heading { color: #fff; }
68
+
69
+ .site-footer__links {
70
+ list-style: none;
71
+ padding: 0;
72
+ margin: 0;
73
+ display: flex;
74
+ flex-direction: column;
75
+ gap: 0.625rem;
76
+ }
77
+
78
+ .site-footer__link {
79
+ font-size: 0.875rem;
80
+ color: #64748b;
81
+ transition: color 0.15s;
82
+ text-decoration: none;
83
+ }
84
+ .dark .site-footer__link { color: #94a3b8; }
85
+ .site-footer__link:hover { color: #0f172a; }
86
+ .dark .site-footer__link:hover { color: #fff; }
87
+
88
+ .site-footer__bottom {
89
+ padding-top: 2rem;
90
+ border-top: 2px solid #e3000f;
91
+ display: flex;
92
+ flex-direction: column;
93
+ align-items: center;
94
+ gap: 1rem;
95
+ }
96
+ @media (min-width: 640px) {
97
+ .site-footer__bottom { flex-direction: row; justify-content: space-between; }
98
+ }
99
+
100
+ .site-footer__copy {
101
+ font-size: 0.875rem;
102
+ color: #94a3b8;
103
+ }
104
+ .dark .site-footer__copy { color: #475569; }
105
+
106
+ .site-footer__social { display: flex; gap: 0.75rem; }
107
+
108
+ .site-footer__social-link {
109
+ color: #cbd5e1;
110
+ transition: color 0.15s;
111
+ text-decoration: none;
112
+ }
113
+ .dark .site-footer__social-link { color: #475569; }
114
+ .site-footer__social-link:hover { color: #64748b; }
115
+ .dark .site-footer__social-link:hover { color: #94a3b8; }
116
+ .site-footer__social-link svg { width: 1.25rem; height: 1.25rem; }
117
+ }