minimal-music-project 0.0.1 → 0.0.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +51 -20
  4. data/_config.yml +13 -20
  5. data/_data/menu.yml +17 -3
  6. data/_data/metaData.yml +2 -1
  7. data/_includes/common-head.html +8 -2
  8. data/_includes/common.js +5 -0
  9. data/_includes/cookies.js +8 -2
  10. data/_includes/customizationsScripts.html +7 -0
  11. data/_includes/customizationsStyles.html +7 -0
  12. data/_includes/discography-entry-metadata.html +80 -0
  13. data/_includes/discography-entry.html +25 -0
  14. data/_includes/menu.html +18 -18
  15. data/_includes/music-player.html +124 -0
  16. data/_includes/pagination-buttons.html +14 -0
  17. data/_includes/read-more.html +13 -0
  18. data/_layouts/default.html +9 -5
  19. data/_layouts/discography.html +13 -3
  20. data/_layouts/post.html +3 -4
  21. data/_layouts/posts_feed.html +43 -30
  22. data/_sass/styles/_cookies.scss +7 -7
  23. data/_sass/styles/_defaults.scss +58 -6
  24. data/_sass/styles/_discography.scss +43 -0
  25. data/_sass/styles/_index.scss +3 -1
  26. data/_sass/styles/_layout.scss +2 -2
  27. data/_sass/styles/_menu.scss +102 -18
  28. data/_sass/styles/_music-player.scss +92 -0
  29. data/_sass/styles/_post.scss +22 -9
  30. data/_sass/styles/_posts_feed.scss +26 -10
  31. data/_sass/variables/_colors.scss +2 -1
  32. data/_sass/variables/_layout.scss +2 -1
  33. data/_sass/variables/_mixins.scss +15 -7
  34. data/assets/audio/sample_song.mp3 +0 -0
  35. data/assets/img/Experimental-Glitches-Cover.png +0 -0
  36. data/assets/img/YyY-Cover.png +0 -0
  37. data/assets/img/z-is-for-zero.png +0 -0
  38. data/pages/about.html +48 -6
  39. metadata +16 -6
  40. data/_includes/avatar.html +0 -5
  41. data/_includes/customizations.html +0 -15
  42. data/pages/collaborations.html +0 -7
  43. data/pages/discography.html +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94130b90c49b3c5423eeb20740ef30d0ef726224d45ca6eda8c0d1bd29746e1b
4
- data.tar.gz: b142daa5b762e53446bc6b92a7a40c3801a30173c9e5f9c5d90f345cf1b1477c
3
+ metadata.gz: be9a010e0f48570412378b9081c7c98b679fdb3e0d0e299aece41f8569865007
4
+ data.tar.gz: 2c241be3e8f4c5f6ae116701b997914d6acefcf3e31ed81327a68e51d1eb2951
5
5
  SHA512:
6
- metadata.gz: 123a67632b7566211e8a852afc54ceaf1bc235ae44af2f4838b5796f193e550a4992aac85b6b8ce6dae856d3b5289ee42edaec994d68cfb78d90c60326898abe
7
- data.tar.gz: 16f67b30d7c9654e6c9d659ef41ce789b1cd30ca547efff8e1c82bbd4c9c62d2916bf0cf6200c30d0b2778a7ac3a6c010d46334c0100920c68aed4abecf545df
6
+ metadata.gz: 9ee664db5a3b579113ca4e3d1920a21d6ca24be6656633a51defafd1baca182cc6c3ad673890e65ea4c1493cab8847e5aba32648ae696c57fbed4ab9d4468dc1
7
+ data.tar.gz: 717caff78c28277d289d3973d5cc4e841c0c2604b5e98fca92532a50410273772f37f3a60f9da2c7021ca60fb4f415fa6afcf5e5351f653665f62b399fca60a1
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2020 Patryk Bieszke
3
+ Copyright (c) 2021 Patryk Bieszke
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,40 +1,56 @@
1
1
  # [minimal-music-project Jekyll theme](https://github.com/ItsMeaga1n/minimal-music-project/)
2
2
 
3
- [![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/mmistakes/minimal-mistakes/master/LICENSE)
3
+ [![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/itsmeaga1n/minimal-music-project/master/LICENSE.txt)
4
4
  [![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.9-blue.svg)](https://jekyllrb.com/)
5
5
  [![Gem Version](https://badge.fury.io/rb/minimal-music-project.svg)](https://badge.fury.io/rb/minimal-music-project)
6
+ <a href="https://ko-fi.com/itsmeaga1n">
7
+ <img height="20" src="https://www.ko-fi.com/img/githubbutton_sm.svg"
8
+ alt="Donate (Ko-fi)" />
9
+ </a>
6
10
 
7
- minimal-music-project is a flexible Jekyll theme, designed for sites with content easily aggregated into categories. Demo is available [here](https://itsmeaga1n.github.io/minimal-music-project/).
11
+ minimal-music-project is a flexible, extendable Jekyll theme. With this theme it's plain simple to create a good looking website for a music band with all the required components to list all releases and news. Demo is available [here](https://minimal-music-project.netlify.app/).
8
12
 
9
13
  ![layout examples](screenshot.png)
10
14
 
11
15
  ## Installation
12
16
 
13
- Add this line to your Jekyll site's `Gemfile`:
17
+ There are three ways to install:
14
18
 
15
- ```ruby
16
- gem "minimal-music-project"
17
- ```
19
+ * As a ruby gem theme:
18
20
 
19
- And add this line to your Jekyll site's `_config.yml`:
21
+ Add this line to your Jekyll site's `Gemfile`:
20
22
 
21
- ```yaml
22
- theme: minimal-music-project
23
- ```
23
+ ```ruby
24
+ gem "minimal-categorized"
25
+ ```
24
26
 
25
- And then execute:
27
+ And add this line to your Jekyll site's `_config.yml`:
26
28
 
27
- $ bundle
29
+ ```yaml
30
+ theme: minimal-categorized
31
+ ```
28
32
 
29
- Or install it yourself as:
33
+ And then execute:
30
34
 
31
- $ gem install minimal-music-project
35
+ $ bundle
32
36
 
33
- ## Usage
37
+ Or install it yourself as:
38
+
39
+ $ gem install minimal-categorized
40
+
41
+ * As a remote theme (GitHub Pages compatible)
42
+
43
+ In your Jekyll site's _config.yml remove other themes and add this entry:
44
+ ```
45
+ remote_theme: ItsMeaga1n/minimal-categorized
46
+ ```
34
47
 
35
- This theme is based on separating content into categories, which is later shown on separated sites designated to the specific content type.
48
+ * Forking/directly copying all of the theme files into your project.
49
+
50
+ ## Usage
51
+ This theme uses pager plugin `jekyll-paginate-v2` for pagination and `jekyll-seo-tag` for seo tags. It can be configured in main _config file.
36
52
 
37
- As for now, theme allows to use two main categories that will be displayed on home screen and more categories displayed only in menu to further separate content. Those are defined in `_data/menu.yml`.
53
+ Configuration via .yml files
38
54
 
39
55
  Structure of `_data/menu.yml`:
40
56
  * menu_pages: a list of items in menu. Each item contains information:
@@ -42,10 +58,25 @@ Structure of `_data/menu.yml`:
42
58
  * url: URL for href
43
59
  * category: unique identifier of category. Used to determine which menu item is selected
44
60
  * tooltip: Tooltip for menu item
61
+ * menu_contacts: a list of items to be displayed for a contact section in menu
62
+ * faicon: FavIcon to be displayed in menu
63
+ * url: URL for href
64
+ * target: target value of \<a> tag
65
+
45
66
 
46
67
  Structure of `_data/metaData.yml`:
47
- author: Site Author name
48
- avatar_url: URL for avatar (for about page)
68
+ * author: Site Author name
69
+ * logo: relative url to the logo
70
+ * cookies: customize information about site cookies
71
+ * enabled: determine if should show cookies pop-up
72
+ * message: text on cookie pop-up
73
+ * agreeButtonText: text on agree button
74
+ * agreeButtonFnName: function in the `window` scope to execute on cookie agree
75
+
76
+
77
+ Structure of `_data/customs.yml`:
78
+ * custom-css: a list of urls to custom css files
79
+ * custom-js: a list of urls to custom javascript files
49
80
 
50
81
  ## Contributing
51
82
 
@@ -63,4 +94,4 @@ To add a custom directory to your theme-gem, please edit the regexp in `minimal-
63
94
  ## License
64
95
 
65
96
  The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
66
-
97
+ Custom Volume Slider was developed with the fundaments based on [codepen project](https://codepen.io/EmNudge/pen/rRbLJQ), thus this component is licensed under [Copyright (c) 2021 by EmNudge](https://codepen.io/EmNudge/pen/rRbLJQ).
data/_config.yml CHANGED
@@ -1,26 +1,10 @@
1
- # Welcome to Jekyll!
2
- #
3
- # This config file is meant for settings that affect your whole blog, values
4
- # which you are expected to set up once and rarely edit after that. If you find
5
- # yourself editing this file very often, consider using Jekyll's data files
6
- # feature for the data you need to update frequently.
7
- #
8
- # For technical reasons, this file is *NOT* reloaded automatically when you use
9
- # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
-
11
- # Site settings
12
- # These are used to personalize your new site. If you look in the HTML files,
13
- # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14
- # You can create any custom variable you would like, and they will be accessible
15
- # in the templates via {{ site.myvariable }}.
16
1
  title: minimal-music-project
17
2
  tagline: A site showing the usage of Jekyll custom theme
18
3
  email: email@example.com
19
- description: >- # this means to ignore newlines until "baseurl:"
4
+ description: >-
20
5
  This website was created as a demonstration for Jekyll custom theme
21
6
  named minimal-music-project. Its main feature is to make it easy to create
22
7
  websites for music projects
23
- baseurl: "/minimal-music-project" # the subpath of your site, e.g. /blog
24
8
  url: "https://itsmeaga1n.github.io" # the base hostname & protocol for your site, e.g. http://example.com
25
9
  author: itsmeaga1n
26
10
  twitter:
@@ -28,12 +12,21 @@ twitter:
28
12
  card: summary
29
13
  plugins:
30
14
  - jekyll-seo-tag
31
-
15
+ - jekyll-feed
16
+ - jekyll-sitemap
17
+ - jekyll-paginate-v2
32
18
  # Build settings
33
19
  markdown: kramdown
34
20
  remote_theme: ItsMeaga1n/minimal-music-project
35
- # Exclude these files from production site
36
- exclude:
21
+ permalink: /:title.html
22
+ pagination:
23
+ enabled: true
24
+ per_page: 4
25
+ limit: 0
26
+ sort_field: 'date'
27
+ sort_reverse: true
28
+
29
+ exclude:
37
30
  - CHANGELOG.md
38
31
  - CNAME
39
32
  - Gemfile
data/_data/menu.yml CHANGED
@@ -4,16 +4,30 @@ menu_pages:
4
4
  category: home
5
5
 
6
6
  - title: Discography
7
- url: /discography.html
7
+ url: /discography/
8
8
  category: discography
9
9
  tooltip: Discography tooltip
10
10
 
11
11
  - title: Collaborations
12
- url: /collaborations.html
12
+ url: /collaborations/
13
13
  category: collaborations
14
14
  tooltip: Collaborations tooltip
15
15
 
16
16
  - title: About
17
17
  url: about.html
18
18
  category: about
19
- tooltip: This is about
19
+ tooltip: This is about
20
+
21
+ menu_contacts:
22
+ - faicon: fab fa-soundcloud
23
+ url:
24
+ target: _blank
25
+ - faicon: fab fa-twitter
26
+ url:
27
+ target: _blank
28
+ - faicon: fas fa-envelope
29
+ url:
30
+ target:
31
+ - faicon: fas fa-rss
32
+ url: /feed.xml
33
+ target: _blank
data/_data/metaData.yml CHANGED
@@ -3,4 +3,5 @@ logo: assets/img/band_logo.png
3
3
  cookies:
4
4
  enabled: True
5
5
  message: This site might be using cookies! Customize your message or disable cookies in metaData.yml!
6
- agreeButtonText: Agree
6
+ agreeButtonText: Agree
7
+ agreeButtonFnName: console.log
@@ -3,14 +3,20 @@
3
3
  <link rel="stylesheet" href="{{ '/assets/styles/styles.css' | relative_url }}">
4
4
  <link rel="stylesheet" href="https://indestructibletype.com/fonts/Jost.css" type="text/css" charset="utf-8" />
5
5
  <script src="https://kit.fontawesome.com/79c31398dc.js" crossorigin="anonymous"></script>
6
+
7
+ <!-- favicon -->
6
8
  <link rel="apple-touch-icon" sizes="180x180" href="{{ '/assets/img/apple-touch-icon.png' | relative_url }}">
7
9
  <link rel="icon" type="image/png" sizes="32x32" href="{{ '/assets/img/favicon-32x32.png' | relative_url }}">
8
10
  <link rel="icon" type="image/png" sizes="16x16" href="{{ '/assets/img/favicon-16x16.png' | relative_url }}">
9
11
  <link rel="manifest" href="{{ '/assets/img/site.webmanifest' | relative_url }}">
10
12
  <link rel="mask-icon" href="{{ '/assets/img/safari-pinned-tab.svg'| relative_url }}" color="#5bbad5">
11
- <link rel="shortcut icon" href="{{' /assets/img/favicon.ico' | relative_url }}">
13
+ <link rel="shortcut icon" href="{{'/assets/img/favicon.ico' | relative_url }}">
12
14
  <meta name="msapplication-TileColor" content="#da532c">
13
15
  <meta name="msapplication-config" content="{{ '/assets/img/browserconfig.xml' | relative_url }}">
14
16
  <meta name="theme-color" content="#ffffff">
15
- {% include customizations.html %}
17
+
18
+ <!-- feed -->
19
+ <link rel="alternate" type="application/atom+xml" title="{{ site.title }}" href="{{ "feed.xml" | relative_url }}">
20
+
21
+ {% include customizationsStyles.html %}
16
22
  {% seo %}
@@ -0,0 +1,5 @@
1
+ (function () {
2
+ window.toggleExpander = function toggleExpander(x) {
3
+ document.getElementsByClassName("menu")[0].classList.toggle("expanded");
4
+ }
5
+ })();
data/_includes/cookies.js CHANGED
@@ -2,10 +2,10 @@
2
2
  const consentPropName = "cookies_consent";
3
3
  const storageType = localStorage;
4
4
 
5
- shouldShowCookieConsent = () => !storageType.getItem(consentPropName);
5
+ areCookiesAccepted = () => storageType.getItem(consentPropName);
6
6
  acceptCookieConsent = () => storageType.setItem(consentPropName, true);
7
7
  window.addEventListener("load", () => {
8
- if(!shouldShowCookieConsent()) {
8
+ if(areCookiesAccepted()) {
9
9
  return;
10
10
  }
11
11
  const cookieContainer = document.createElement("div");
@@ -19,6 +19,12 @@
19
19
  acceptCookieConsent();
20
20
  cookieContainer.classList.add("hidden");
21
21
  window.setTimeout(cookieContainer.remove.bind(cookieContainer), 1000);
22
+ window.setTimeout(cookieContainer.remove.bind(cookieContainer), 1000);
23
+ try {
24
+ {{ site.data.metaData.cookies.agreeButtonFnName }}();
25
+ } catch(e) {
26
+ console.error(e);
27
+ }
22
28
  }
23
29
  cookieParagraph.append(cookieContent);
24
30
  cookieContainer.append(cookieParagraph, cookieAgreeButton);
@@ -0,0 +1,7 @@
1
+ {% for javascript in page.custom-js %}
2
+ <script src="{{ javascript | relative_url }}"></script>
3
+ {% endfor %}
4
+
5
+ {% for javascript in site.data.customs.custom-js %}
6
+ <script src="{{ javascript | relative_url }}"></script>
7
+ {% endfor %}
@@ -0,0 +1,7 @@
1
+ {% for css in page.custom-css %}
2
+ <link href="{{ css | relative_url }}" rel="stylesheet">
3
+ {% endfor %}
4
+
5
+ {% for css in site.data.customs.custom-css %}
6
+ <link href="{{ css | relative_url }}" rel="stylesheet">
7
+ {% endfor %}
@@ -0,0 +1,80 @@
1
+ <p class="discography-album_release-date">
2
+ release date: {{ include.currPost.date | date_to_long_string }}
3
+ </p>
4
+
5
+ {% if include.currPost.type %}
6
+ <p class="discography-album_type">
7
+ release type: {{ include.currPost.type }}
8
+ </p>
9
+ {% endif %}
10
+
11
+ {% assign playArray = include.currPost.play | size %}
12
+ {% if playArray != 0 %}
13
+ <p class="discography-album_play">
14
+ play:
15
+ {% for play in include.currPost.play %}
16
+ <a href="{{ play.url }}" target="_blank">{{ play.name }}</a>
17
+ {% if forloop.last == false %}
18
+ |
19
+ {% endif %}
20
+ {% endfor %}
21
+ </p>
22
+ {% endif %}
23
+
24
+ {% assign downloadArray = include.currPost.download | size %}
25
+ {% if downloadArray != 0 %}
26
+ <p class="discography-album_download">
27
+ download:
28
+ {% for download in include.currPost.download %}
29
+ <a href="{{ download.url }}" target="_blank">{{ download.name }}</a>
30
+ {% if forloop.last == false %}
31
+ |
32
+ {% endif %}
33
+ {% endfor %}
34
+ </p>
35
+ {% endif %}
36
+
37
+ {% assign buyArray = include.currPost.buy | size %}
38
+ {% if buyArray != 0 %}
39
+ <p class="discography-album_buy">
40
+ buy from:
41
+ {% for buy in include.currPost.buy %}
42
+ <a href="{{ buy.url }}" target="_blank">{{ buy.name }}</a>
43
+ {% if forloop.last == false %}
44
+ |
45
+ {% endif %}
46
+ {% endfor %}
47
+ </p>
48
+ {% endif %}
49
+
50
+ {% assign otherArray = include.currPost.other | size %}
51
+ {% if otherArray != 0 %}
52
+ <p class="discography-album_other">
53
+ other links:
54
+ {% for other in include.currPost.other %}
55
+ <a href="{{ other.url }}" target="_blank">{{ other.name }}</a>
56
+ {% if forloop.last == false %}
57
+ |
58
+ {% endif %}
59
+ {% endfor %}
60
+ </p>
61
+ {% endif %}
62
+ {% if include.currPost.play_here %}
63
+ {% include music-player.html audioData=include.currPost.play_here %}
64
+ {% endif %}
65
+ {% if include.currPost.play_soundcloud_embed %}
66
+ <iframe width="100%" height="110" scrolling="no" frameborder="no" allow="autoplay"
67
+ src="{{ include.currPost.play_soundcloud_embed.src }}"></iframe>
68
+ <div
69
+ style="font-size: 10px; color: #cccccc;line-break: anywhere;word-break: normal;overflow: hidden;text-overflow: ellipsis; font-family: Interstate,Lucida Grande,Lucida Sans Unicode,Lucida Sans,Garuda,Verdana,Tahoma,sans-serif;font-weight: 100;">
70
+ <a href="{{ include.currPost.play_soundcloud_embed.artist_href }}" title="{{ include.currPost.play_soundcloud_embed.artist_title }}" target="_blank"
71
+ style="color: #cccccc; text-decoration: none;">{{ include.currPost.play_soundcloud_embed.artist_title }}</a> · <a
72
+ href="{{ include.currPost.play_soundcloud_embed.song_href }}"
73
+ title="{{ include.currPost.play_soundcloud_embed.song_title }}" target="_blank"
74
+ style="color: #cccccc; text-decoration: none;">{{ include.currPost.play_soundcloud_embed.song_title }}</a></div>
75
+ {% endif %}
76
+ {% if include.currPost.play_bandcamp_embed %}
77
+ <iframe style="border: 0; width: 100%; height: 120px;"
78
+ src="{{ include.currPost.play_bandcamp_embed.src }}" seamless>
79
+ <a href="{{ include.currPost.play_bandcamp_embed.href }}">{{ include.currPost.play_bandcamp_embed.title }}</a></iframe>
80
+ {% endif %}
@@ -0,0 +1,25 @@
1
+ <article class="discography-album">
2
+ <header>
3
+ <figure class="discography-album_cover-wrapper">
4
+ <div class="discography-album_cover">
5
+ <img src="{{ include.currPost.image | relative_url }}" alt="{{ page.image_alt }}" />
6
+ </div>
7
+ </figure>
8
+ </header>
9
+ <section>
10
+ {% if include.currPost.external_url %}
11
+ <a href="{{ include.currPost.external_url | relative_url }}" target="_blank">
12
+ {% else %}
13
+ <a href="{{ include.currPost.url | relative_url }}">
14
+ {% endif %}
15
+ <h2 class="discography-album_title">
16
+ {{ include.currPost.title }}
17
+ </h2>
18
+ </a>
19
+ <p class="discography-album_summary">
20
+ {{ include.currPost.description }}
21
+ </p>
22
+ {% include discography-entry-metadata.html currPost=include.currPost %}
23
+ </section>
24
+ {% include read-more.html currPost=include.currPost %}
25
+ </article>
data/_includes/menu.html CHANGED
@@ -5,31 +5,31 @@
5
5
  <img src="{{ site.data.metaData.logo | relative_url }}" alt="Logo" onerror="this.style.display='none'">
6
6
  </a>
7
7
  </div>
8
+ <div class="menu-top_expand" onclick="toggleExpander(this)">
9
+ <div class="bar_top"></div>
10
+ <div class="bar_middle"></div>
11
+ <div class="bar_bottom"></div>
12
+ </div>
8
13
  <ul class="navigation">
9
14
  {% for menu_item in site.data.menu.menu_pages %}
10
15
  <li>
11
- <a href="{{ menu_item.url | relative_url }}" category="{{ menu_item.category }}" title="{{ menu_item.tooltip }}">
16
+ <a href="{{ menu_item.url | relative_url }}" category="{{ menu_item.category }}" title="{{ menu_item.tooltip }}"
17
+ {% if menu_item.category == page.category or page.categories contains menu_item.category %}
18
+ class="selected"
19
+ {% endif %}
20
+ >
12
21
  <span>{{ menu_item.title }}</span>
13
22
  </a>
14
23
  </li>
15
24
  {% endfor %}
16
25
  </ul>
17
26
  </div>
18
- </aside>
27
+ <div class="menu-contact">
28
+ {% for contact in site.data.menu.menu_contacts %}
19
29
 
20
- <script>
21
- (function() {
22
- window.addEventListener("load", () => {
23
- const navigation = document.getElementsByClassName("navigation")[0];
24
- const selectedCategory = navigation.getElementsByTagName("a");
25
- const currCategory = "{{ page.category }}";
26
-
27
- for(menuItem of selectedCategory) {
28
- if(menuItem.getAttribute("category") === currCategory) {
29
- menuItem.classList.add("selected");
30
- return;
31
- }
32
- }
33
- });
34
- })();
35
- </script>
30
+ <a href="{{ contact.url | relative_url }}" target="{{ contact.target }}">
31
+ <i class="{{ contact.faicon }}"></i>
32
+ </a>
33
+ {% endfor %}
34
+ </div>
35
+ </aside>