occams 1.0.3 → 1.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f030fa6c8dd687cc40cba6d81f64035f233c93ffd6b0b7c7f63b5ca90846c5d6
4
- data.tar.gz: 3e739fe2c866bd741e2f5c7b2901bbc2ef898a6891d6d0c5c54d7a0037a2d8b8
3
+ metadata.gz: aca6dd86629db61b2c905c1e54bf45dc6d4153659bf46868ed4a4c8ee70f9ad0
4
+ data.tar.gz: 151a8b8aab7bcc69405e530a1100f18796515fc1e00fec3131c4cf68736f6778
5
5
  SHA512:
6
- metadata.gz: ae30e9cb660dcf2a31980a5d0de6d2da4d007ea5973d8e86a91e85c409bd2733d1554e64d8085d821745d37820c5e1a9a8b6c49ebde9254247fec315c9a9bac7
7
- data.tar.gz: 7d18607b4253d86bff9cf8e3be92541385b33d474d188e1a5da22c94f3e339dc62bf86548a564838867d068d6c847ecda379b516c65b4f01d4f6fe03da6fb79b
6
+ metadata.gz: 67407dbc43513ff16a74bef095001a7c4f6bf544a0ab07bbf1c51388478ebd3e6d078bc82714ecd1f9899079d6832ab326a779ec2addad117d36708279337ca3
7
+ data.tar.gz: 807c7bd56f6684c6aca8c189bded644f843da7badac3beb883b3471c60ce45252a94486051d08468fc3fa778eff4808b01ff5c497a7c1c0b23586569c5c76242
data/.rubocop.yml CHANGED
@@ -38,7 +38,7 @@ Metrics/MethodLength:
38
38
  Enabled: false
39
39
 
40
40
  Metrics/PerceivedComplexity:
41
- Max: 12
41
+ Max: 15
42
42
 
43
43
  # -- Naming --------------------------------------------------------------------
44
44
  Naming/MethodParameterName:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.0.4 - 8/26/2023
4
+
5
+ - Added [cms:breadcrumbs Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#breadcrumbs)
6
+ - Added [cms:siblings Nav tag](https://github.com/avonderluft/occams/wiki/Content-Tags#siblings)
7
+ - Updated [wiki documentation](https://github.com/avonderluft/occams/wiki)
8
+
3
9
  ## v1.0.3 - 8/15/2023
4
10
 
5
11
  - Added a [cms:audio tag](https://github.com/avonderluft/occams/wiki/Content-Tags#audio) for an embedded audio player
data/Gemfile CHANGED
@@ -18,7 +18,7 @@ end
18
18
 
19
19
  group :development do
20
20
  gem 'listen', '~> 3.8.0'
21
- gem 'web-console', '~> 3.5.1'
21
+ gem 'web-console', '~> 4.2'
22
22
  end
23
23
 
24
24
  group :test do
data/README.md CHANGED
@@ -29,9 +29,9 @@ Referring to the [ComfortableMexicanSofa](https://github.com/comfy/comfortable-m
29
29
  * Powerful page templating capability using [Content Tags](https://github.com/avonderluft/occams/wiki/Content-Tags)
30
30
  * [Multiple Sites](https://github.com/avonderluft/occams/wiki/Sites) from a single installation
31
31
  * Multi-Language Support (i18n) (ca, cs, da, de, en, es, fi, fr, gr, hr, it, ja, nb, nl, pl, pt-BR, ru, sv, tr, uk, zh-CN, zh-TW) and page localization.
32
- * [CMS Seeds](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-CMS-Seeds) for initial content population
33
- * [Revision History](https://github.com/comfy/comfortable-mexican-sofa/wiki/Docs:-Revisions) to revert changes
34
- * [Extendable Admin Area](https://github.com/comfy/comfortable-mexican-sofa/wiki/HowTo:-Reusing-Admin-Area) built with [Bootstrap 4](http://getbootstrap.com) (responsive design). Using [CodeMirror](http://codemirror.net) for HTML and Markdown highlighing and [Redactor](http://imperavi.com/redactor) as the WYSIWYG editor.
32
+ * [CMS Seeds](https://github.com/avonderluft/occams/wiki/CMS-Seeds) for initial content population
33
+ * [Revision History](https://github.com/avonderluft/occams/wiki/Revisions) to revert changes
34
+ * [Extendable Admin Area](https://github.com/avonderluft/occams/wiki/HowTo:-Reusing-Admin-Area) built with [Bootstrap 4](http://getbootstrap.com) (responsive design). Using [CodeMirror](http://codemirror.net) for HTML and Markdown highlighing and [Redactor](http://imperavi.com/redactor) as the WYSIWYG editor.
35
35
 
36
36
  ## Dependencies
37
37
 
data/TODOS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ToDos
2
2
 
3
+ - add admin content search to list layouts, pages and snippets - see https://blog.robertsj.com/search/
3
4
  - add application console for testing
4
5
  - add feature to resize file_link'd images
5
- - get the original [ComfortableMexicanSofa](https://github.com/comfy/comfortable-mexican-sofa) tests working
6
- - add and update documentation to Occams to replace ComfortableMexicanSofa
6
+ - get the original [ComfortableMexicanSofa](https://github.com/comfy/comfortable-mexican-sofa) tests working with Rails 7 and Ruby 3
@@ -43,4 +43,4 @@
43
43
  %span.version= RUBY_VERSION
44
44
  %br
45
45
  = Rails.env.upcase
46
-
46
+
@@ -1,4 +1,4 @@
1
- class Admin::<%= class_name.pluralize %>Controller < Comfy::Admin::BaseController
1
+ class Admin::<%= class_name.pluralize %>Controller < Occams::Admin::BaseController
2
2
 
3
3
  before_action :build_<%= file_name %>, only: [:new, :create]
4
4
  before_action :load_<%= file_name %>, only: [:show, :edit, :update, :destroy]
@@ -5,13 +5,14 @@
5
5
  # This expands into:
6
6
  # <audio controls src="path/to/audio"></audio>
7
7
  # To customize your player style, add a 'audioplayer' class to your CSS, e.g
8
- # .audioplayer
9
- # border-radius: 6px
10
- # height: 22px
11
- # width: 60%
12
- # margin: 2px 0 2px 8px
13
- # padding: 0
14
- # and/or pass in style overrides with the 'style' parameter
8
+ # .audioplayer {
9
+ # border-radius: 6px;
10
+ # height: 22px;
11
+ # width: 60%;
12
+ # margin: 2px 0 2px 8px;
13
+ # padding: 0;
14
+ # }
15
+ # and/or pass in style overrides with the 'style' parameter, as above
15
16
 
16
17
  class Occams::Content::Tag::Audio < Occams::Content::Tag
17
18
  attr_reader :path, :locals
@@ -20,7 +21,9 @@ class Occams::Content::Tag::Audio < Occams::Content::Tag
20
21
  super
21
22
  options = params.extract_options!
22
23
  @path = params[0]
23
- @style = options['style']
24
+ @style = ''
25
+ @style = "<style>.audioplayer {#{options['style']}}</style>" if options['style']
26
+ @style = options['style']
24
27
 
25
28
  return if @path.present?
26
29
 
@@ -28,11 +31,7 @@ class Occams::Content::Tag::Audio < Occams::Content::Tag
28
31
  end
29
32
 
30
33
  def content
31
- format(
32
- '<style>.audioplayer {%<style>s}</style><audio controls class="audioplayer" src=%<path>p></audio>',
33
- path: @path,
34
- style: @style
35
- )
34
+ format("#{@style}<audio controls class=\"audioplayer\" src=#{@path}></audio>")
36
35
  end
37
36
  end
38
37
 
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Nav Tag for rendering breadcrumb links to current page
4
+ # {{ cms:breadcrumbs }}
5
+ # {{ cms:breadcrumbs style: "font-weight: bold" }}
6
+ # To customize your breadcrumbs style, add a 'breadcrumbs' id to your CSS, e.g
7
+ # #breadcrumbs {
8
+ # color: #006633;
9
+ # font-family: Verdana, Arial, Helvetica, sans-serif;
10
+ # font-size: 105%;
11
+ # font-weight: bold;
12
+ # margin-top: 12px;
13
+ # margin-bottom: 4px;
14
+ # font-style: italic;
15
+ # }
16
+ # and/or pass in style overrides with the 'style' parameter, as above
17
+
18
+ class Occams::Content::Tag::Breadcrumbs < Occams::Content::Tag
19
+ attr_reader :path, :locals
20
+
21
+ def initialize(context:, params: [], source: nil)
22
+ super
23
+ options = params.extract_options!
24
+ @style = ''
25
+ @style = "<style>#breadcrumbs {#{options['style']}}</style>" if options['style']
26
+
27
+ @links = '<div id="breadcrumbs">'
28
+ context.ancestors.reverse.each do |a|
29
+ next if Rails.env == 'production' && !a.is_published
30
+
31
+ @links += "<a href=#{a.url(relative: true)}>#{a.label}</a> &raquo; "
32
+ end
33
+ @links += "#{context.label}</div>"
34
+ end
35
+
36
+ def content
37
+ format("#{@style}#{@links}")
38
+ end
39
+ end
40
+
41
+ Occams::Content::Renderer.register_tag(
42
+ :breadcrumbs, Occams::Content::Tag::Breadcrumbs
43
+ )
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Nav Tag for rendering previous and next sibling links relative to current page
4
+ # {{ cms:siblings }}
5
+ # {{ cms:siblings style: "font-style: italic", exclude: "404-page, search-page" }}
6
+ # To customize your siblings style, add a 'siblings' id to your CSS, e.g
7
+ # #siblings {
8
+ # color: #006633;
9
+ # font-family: Verdana, Arial, Helvetica, sans-serif;
10
+ # font-size: 95%;
11
+ # margin-top: 12px;
12
+ # margin-bottom: 4px;
13
+ # font-style: italic;
14
+ # }
15
+ # and/or pass in style overrides with the 'style' parameter (see above)
16
+ #
17
+ # To exclude siblings, list their slugs with the 'exclude' parameter
18
+ # as comma-delimited string, e.g. as above - exclude: "404-page, search-page"
19
+ #
20
+ # style and exclude parameters are optional
21
+
22
+ class Occams::Content::Tag::Siblings < Occams::Content::Tag
23
+ attr_reader :path, :locals
24
+
25
+ def initialize(context:, params: [], source: nil)
26
+ super
27
+ options = params.extract_options!
28
+ @style = ''
29
+ @style = "<style>#siblings {#{options['style']}}</style>" if options['style']
30
+ @exclude = []
31
+ @exclude = options['exclude'].split(',') if options['exclude']
32
+ @links = '<div id="siblings">'
33
+
34
+ prevp = false
35
+ sibs = context.self_and_siblings.sort_by(&:position)
36
+ page_idx = sibs.index(context)
37
+ sibs.each do |sib|
38
+ sib_idx = sibs.index(sib)
39
+ next if sibs.index(sib) == page_idx
40
+ next if @exclude.include? sib.slug
41
+ next if Rails.env == 'production' && !sib.is_published
42
+
43
+ if sib_idx == page_idx - 1
44
+ @links += "<a href=#{sib.url(relative: true)}>#{sib.label}</a> &laquo;&nbsp;<em>Previous</em> &bull; "
45
+ prevp = true
46
+ elsif sib_idx == page_idx + 1
47
+ @links += '&bull;' unless prevp
48
+ @links += "<em>Next</em>&nbsp;&raquo; <a href=#{sib.url(relative: true)}>#{sib.label}</a>"
49
+ end
50
+ end
51
+ @links += '</div>'
52
+ end
53
+
54
+ def content
55
+ format("#{@style}#{@links}")
56
+ end
57
+ end
58
+
59
+ Occams::Content::Renderer.register_tag(
60
+ :siblings, Occams::Content::Tag::Siblings
61
+ )
@@ -24,9 +24,12 @@ require_relative 'content/tags/files'
24
24
 
25
25
  require_relative 'content/tags/snippet'
26
26
  require_relative 'content/tags/asset'
27
- require_relative 'content/tags/audio'
28
27
  require_relative 'content/tags/file_link'
29
28
  require_relative 'content/tags/page_file_link'
30
29
  require_relative 'content/tags/helper'
31
30
  require_relative 'content/tags/partial'
32
31
  require_relative 'content/tags/template'
32
+
33
+ require_relative 'content/tags/audio'
34
+ require_relative 'content/tags/breadcrumbs'
35
+ require_relative 'content/tags/siblings'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Occams
4
- VERSION = '1.0.3'
4
+ VERSION = '1.0.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occams
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew vonderLuft
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-15 00:00:00.000000000 Z
11
+ date: 2023-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_link_to
@@ -654,6 +654,7 @@ files:
654
654
  - lib/occams/content/tag.rb
655
655
  - lib/occams/content/tags/asset.rb
656
656
  - lib/occams/content/tags/audio.rb
657
+ - lib/occams/content/tags/breadcrumbs.rb
657
658
  - lib/occams/content/tags/checkbox.rb
658
659
  - lib/occams/content/tags/date.rb
659
660
  - lib/occams/content/tags/datetime.rb
@@ -667,6 +668,7 @@ files:
667
668
  - lib/occams/content/tags/number.rb
668
669
  - lib/occams/content/tags/page_file_link.rb
669
670
  - lib/occams/content/tags/partial.rb
671
+ - lib/occams/content/tags/siblings.rb
670
672
  - lib/occams/content/tags/snippet.rb
671
673
  - lib/occams/content/tags/template.rb
672
674
  - lib/occams/content/tags/text.rb