occams 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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