rails_admin_content_builder 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.gitignore +1 -1
- data/.rubocop.yml +10 -0
- data/Gemfile +2 -1
- data/README.md +12 -1
- data/Rakefile +7 -7
- data/app/assets/images/cb-snippet-image-text.jpg +0 -0
- data/app/assets/images/cb-snippet-image-text.psd +0 -0
- data/app/assets/images/cb-snippet-image.jpg +0 -0
- data/app/assets/images/cb-snippet-image.psd +0 -0
- data/app/assets/images/cb-snippet-quote-text.jpg +0 -0
- data/app/assets/images/cb-snippet-quote-text.psd +0 -0
- data/app/assets/images/cb-snippet-quote.jpg +0 -0
- data/app/assets/images/cb-snippet-quote.psd +0 -0
- data/app/assets/images/cb-snippet-relational-text.jpg +0 -0
- data/app/assets/images/cb-snippet-relational-text.psd +0 -0
- data/app/assets/images/cb-snippet-text-image.jpg +0 -0
- data/app/assets/images/cb-snippet-text-image.psd +0 -0
- data/app/assets/images/cb-snippet-text-quote.jpg +0 -0
- data/app/assets/images/cb-snippet-text-quote.psd +0 -0
- data/app/assets/images/cb-snippet-text-relational.jpg +0 -0
- data/app/assets/images/cb-snippet-text-relational.psd +0 -0
- data/app/assets/images/cb-snippet-text.jpg +0 -0
- data/app/assets/images/cb-snippet-text.psd +0 -0
- data/app/assets/images/cb-snippet-video.jpg +0 -0
- data/app/assets/images/cb-snippet-video.psd +0 -0
- data/app/assets/javascripts/rails_admin/content_builder.js.erb +27 -20
- data/app/assets/stylesheets/rails_admin/content_builder.scss +174 -81
- data/app/controllers/rails_admin_content_builder/content_builder_controller.rb +7 -9
- data/app/helpers/rails_admin_content_builder/content_builder_helpers.rb +9 -3
- data/app/models/rails_admin_content_builder/content_builder.rb +21 -5
- data/app/views/rails_admin/main/content_builder.html.erb +3 -3
- data/bin/console +3 -3
- data/config/initializers/assets.rb +13 -13
- data/config/locales/content_builder.en.yml +4 -0
- data/config/locales/content_builder.pt-BR.yml +4 -0
- data/config/routes.rb +6 -6
- data/lib/generators/rails_admin_content_builder_generator.rb +17 -9
- data/lib/generators/templates/content_builder_image_uploader.rb +3 -13
- data/lib/rails_admin_content_builder.rb +3 -3
- data/lib/rails_admin_content_builder/engine.rb +1 -1
- data/lib/rails_admin_content_builder/version.rb +1 -1
- data/rails_admin_content_builder.gemspec +22 -20
- data/screenshot/image1.png +0 -0
- data/spec/controllers/rails_admin_content_builder/content_builder_controller_spec.rb +41 -5
- data/spec/dummy/Gemfile +0 -1
- data/spec/dummy/app/uploaders/content_builder_image_uploader.rb +2 -3
- data/spec/dummy/bin/setup +8 -8
- data/spec/dummy/config/application.rb +7 -7
- data/spec/dummy/config/initializers/rails_admin.rb +0 -1
- data/spec/dummy/config/initializers/simple_form.rb +1 -1
- data/spec/dummy/db/schema.rb +23 -25
- data/spec/factories/content_builder_categories.rb +2 -1
- data/spec/factories/content_builder_images.rb +7 -2
- data/spec/features/create_content_builder_category_spec.rb +4 -3
- data/spec/features/create_content_builder_spec.rb +5 -4
- data/spec/features/status_content_builder_spec.rb +8 -5
- data/spec/helpers/rails_admin_content_builder/content_builder_helper_spec.rb +15 -12
- data/spec/models/rails_admin_content_builder/content_builder_category_spec.rb +1 -1
- data/spec/models/rails_admin_content_builder/content_builder_image_spec.rb +1 -1
- data/spec/models/rails_admin_content_builder/content_builder_spec.rb +22 -8
- data/spec/spec_helper.rb +4 -4
- data/spec/version_spec.rb +1 -1
- data/vendor/assets/stylesheets/rails_admin_content_builder.scss +47 -30
- metadata +1726 -4
- data/spec/dummy/db/development.sqlite3 +0 -0
data/spec/dummy/Gemfile
CHANGED
@@ -32,11 +32,11 @@ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
|
|
32
32
|
|
33
33
|
# Create different versions of your uploaded files:
|
34
34
|
version :left_or_right do
|
35
|
-
process :
|
35
|
+
process resize_to_fit: [450, 450]
|
36
36
|
end
|
37
37
|
|
38
38
|
version :center do
|
39
|
-
process :
|
39
|
+
process resize_to_fit: [900, 900]
|
40
40
|
end
|
41
41
|
|
42
42
|
# Add a white list of extensions which are allowed to be uploaded.
|
@@ -50,5 +50,4 @@ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
|
|
50
50
|
# def filename
|
51
51
|
# "something.jpg" if original_filename
|
52
52
|
# end
|
53
|
-
|
54
53
|
end
|
data/spec/dummy/bin/setup
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
require 'pathname'
|
3
3
|
|
4
4
|
# path to your application root.
|
5
|
-
APP_ROOT = Pathname.new File.expand_path('../../',
|
5
|
+
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
|
6
6
|
|
7
7
|
Dir.chdir APP_ROOT do
|
8
8
|
# This script is a starting point to setup your application.
|
9
9
|
# Add necessary setup steps to this file:
|
10
10
|
|
11
|
-
puts
|
12
|
-
system
|
13
|
-
system
|
11
|
+
puts '== Installing dependencies =='
|
12
|
+
system 'gem install bundler --conservative'
|
13
|
+
system 'bundle check || bundle install'
|
14
14
|
|
15
15
|
# puts "\n== Copying sample files =="
|
16
16
|
# unless File.exist?("config/database.yml")
|
@@ -18,12 +18,12 @@ Dir.chdir APP_ROOT do
|
|
18
18
|
# end
|
19
19
|
|
20
20
|
puts "\n== Preparing database =="
|
21
|
-
system
|
21
|
+
system 'bin/rake db:setup'
|
22
22
|
|
23
23
|
puts "\n== Removing old logs and tempfiles =="
|
24
|
-
system
|
25
|
-
system
|
24
|
+
system 'rm -f log/*'
|
25
|
+
system 'rm -rf tmp/cache'
|
26
26
|
|
27
27
|
puts "\n== Restarting application server =="
|
28
|
-
system
|
28
|
+
system 'touch tmp/restart.txt'
|
29
29
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
2
2
|
|
3
3
|
# Pick the frameworks you want:
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
|
4
|
+
require 'active_record/railtie'
|
5
|
+
require 'action_controller/railtie'
|
6
|
+
require 'action_mailer/railtie'
|
7
|
+
require 'action_view/railtie'
|
8
|
+
require 'sprockets/railtie'
|
9
|
+
require "rails/all"
|
10
10
|
|
11
11
|
Bundler.require(*Rails.groups)
|
12
|
-
require
|
12
|
+
require 'rails_admin_content_builder'
|
13
13
|
|
14
14
|
module Dummy
|
15
15
|
class Application < Rails::Application
|
@@ -6,7 +6,7 @@ SimpleForm.setup do |config|
|
|
6
6
|
# stack. The options given below are used to wrap the
|
7
7
|
# whole input.
|
8
8
|
config.wrappers :default, class: :input,
|
9
|
-
|
9
|
+
hint_class: :field_with_hint, error_class: :field_with_errors do |b|
|
10
10
|
## Extensions enabled by default
|
11
11
|
# Any of these extensions can be disabled for a
|
12
12
|
# given input by passing: `f.input EXTENSION_NAME => false`.
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,36 +11,34 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
15
|
-
|
16
|
-
|
17
|
-
t.string
|
18
|
-
t.
|
19
|
-
t.datetime
|
20
|
-
t.datetime "updated_at", null: false
|
14
|
+
ActiveRecord::Schema.define(version: 20_160_713_200_804) do
|
15
|
+
create_table 'content_builder_categories', force: :cascade do |t|
|
16
|
+
t.string 'name'
|
17
|
+
t.string 'slug'
|
18
|
+
t.datetime 'created_at', null: false
|
19
|
+
t.datetime 'updated_at', null: false
|
21
20
|
end
|
22
21
|
|
23
|
-
create_table
|
24
|
-
t.string
|
25
|
-
t.integer
|
26
|
-
t.datetime
|
27
|
-
t.datetime
|
22
|
+
create_table 'content_builder_images', force: :cascade do |t|
|
23
|
+
t.string 'image'
|
24
|
+
t.integer 'content_builder_id'
|
25
|
+
t.datetime 'created_at', null: false
|
26
|
+
t.datetime 'updated_at', null: false
|
28
27
|
end
|
29
28
|
|
30
|
-
add_index
|
29
|
+
add_index 'content_builder_images', ['content_builder_id'], name: 'index_content_builder_images_on_content_builder_id'
|
31
30
|
|
32
|
-
create_table
|
33
|
-
t.string
|
34
|
-
t.string
|
35
|
-
t.datetime
|
36
|
-
t.text
|
37
|
-
t.boolean
|
38
|
-
t.string
|
39
|
-
t.integer
|
40
|
-
t.datetime
|
41
|
-
t.datetime
|
31
|
+
create_table 'content_builders', force: :cascade do |t|
|
32
|
+
t.string 'title'
|
33
|
+
t.string 'written_by'
|
34
|
+
t.datetime 'date_publish'
|
35
|
+
t.text 'content'
|
36
|
+
t.boolean 'status', default: false
|
37
|
+
t.string 'slug'
|
38
|
+
t.integer 'content_builder_category_id'
|
39
|
+
t.datetime 'created_at', null: false
|
40
|
+
t.datetime 'updated_at', null: false
|
42
41
|
end
|
43
42
|
|
44
|
-
add_index
|
45
|
-
|
43
|
+
add_index 'content_builders', ['content_builder_category_id'], name: 'index_content_builders_on_content_builder_category_id'
|
46
44
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
-
|
2
|
+
content_builder_category = RailsAdminContentBuilder::ContentBuilderCategory
|
3
|
+
factory :content_builder_category, class: content_builder_category do
|
3
4
|
name { Faker::Lorem.characters }
|
4
5
|
end
|
5
6
|
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
FactoryGirl.define do
|
2
|
-
|
3
|
-
|
2
|
+
content_builder_image = RailsAdminContentBuilder::ContentBuilderImage
|
3
|
+
factory :content_builder_image, class: content_builder_image do
|
4
|
+
image do
|
5
|
+
Rack::Test::UploadedFile.new(
|
6
|
+
File.join('spec', 'fixtures', 'assets', 'example.jpg')
|
7
|
+
)
|
8
|
+
end
|
4
9
|
content_builder factory: :content_builder
|
5
10
|
end
|
6
11
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
feature 'create content builder category', :
|
4
|
-
|
3
|
+
feature 'create content builder category', type: :feature do
|
5
4
|
before(:each) do
|
6
5
|
@model_name = 'rails_admin_content_builder~content_builder_category'
|
7
6
|
end
|
@@ -13,6 +12,8 @@ feature 'create content builder category', :type => :feature do
|
|
13
12
|
|
14
13
|
click_button('Save')
|
15
14
|
|
16
|
-
expect(page).to have_content(
|
15
|
+
expect(page).to have_content(
|
16
|
+
'Content builder category successfully created'
|
17
|
+
)
|
17
18
|
end
|
18
19
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
feature 'create content builder', :
|
4
|
-
|
3
|
+
feature 'create content builder', type: :feature do
|
5
4
|
before(:each) do
|
6
5
|
@model_name = 'rails_admin_content_builder~content_builder'
|
7
6
|
end
|
@@ -13,7 +12,7 @@ feature 'create content builder', :type => :feature do
|
|
13
12
|
fill_in('Title', with: Faker::Lorem.characters)
|
14
13
|
fill_in('Date publish', with: 'April 25, 2016 15:48')
|
15
14
|
fill_in('Written by', with: Faker::Internet.url)
|
16
|
-
select(category.name, :
|
15
|
+
select(category.name, from: 'Content builder category')
|
17
16
|
|
18
17
|
click_button('Save')
|
19
18
|
|
@@ -22,7 +21,9 @@ feature 'create content builder', :type => :feature do
|
|
22
21
|
|
23
22
|
scenario 'second step', js: false do
|
24
23
|
content = FactoryGirl.create(:content_builder)
|
25
|
-
visit rails_admin.content_builder_path(
|
24
|
+
visit rails_admin.content_builder_path(
|
25
|
+
model_name: @model_name, id: content.id
|
26
|
+
)
|
26
27
|
|
27
28
|
# find('a[href="#"][data-snippet="1"]').click
|
28
29
|
# find('img[alt="Snippet text"]').click
|
@@ -1,14 +1,15 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
feature 'change status content builder', :
|
4
|
-
|
3
|
+
feature 'change status content builder', type: :feature do
|
5
4
|
before(:each) do
|
6
5
|
@model_name = 'rails_admin_content_builder~content_builder'
|
7
6
|
end
|
8
7
|
|
9
8
|
scenario 'publish', js: false do
|
10
9
|
content = FactoryGirl.create(:content_builder)
|
11
|
-
visit rails_admin.content_builder_path(
|
10
|
+
visit rails_admin.content_builder_path(
|
11
|
+
model_name: @model_name, id: content.id
|
12
|
+
)
|
12
13
|
|
13
14
|
click_button('Publish')
|
14
15
|
|
@@ -18,11 +19,13 @@ feature 'change status content builder', :type => :feature do
|
|
18
19
|
|
19
20
|
scenario 'unpublish', js: false do
|
20
21
|
content = FactoryGirl.create(:content_builder, status: true)
|
21
|
-
visit rails_admin.content_builder_path(
|
22
|
+
visit rails_admin.content_builder_path(
|
23
|
+
model_name: @model_name, id: content.id
|
24
|
+
)
|
22
25
|
|
23
26
|
click_button('Unpublish')
|
24
27
|
|
25
28
|
expect(page).to have_content('Successfully updated')
|
26
29
|
expect(page).to have_selector("input[type=submit][name='publish']")
|
27
30
|
end
|
28
|
-
end
|
31
|
+
end
|
@@ -1,33 +1,36 @@
|
|
1
|
-
require
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe RailsAdminContentBuilder::ContentBuilderHelpers, type: :helper do
|
4
|
-
describe
|
5
|
-
it
|
6
|
-
|
4
|
+
describe '#content_created' do
|
5
|
+
it 'return object content' do
|
6
|
+
content_builder = RailsAdminContentBuilder::ContentBuilder
|
7
|
+
expect(helper.content_created).to eq(content_builder)
|
7
8
|
end
|
8
9
|
end
|
9
10
|
|
10
|
-
describe
|
11
|
-
it
|
11
|
+
describe '#all_contents_created' do
|
12
|
+
it 'return all contents abjects with status true' do
|
12
13
|
content = FactoryGirl.create(:content_builder, status: true)
|
13
14
|
expect(helper.all_contents_created).to include(content)
|
14
15
|
end
|
15
16
|
|
16
|
-
it
|
17
|
+
it 'not return all contents objects with status false' do
|
17
18
|
content = FactoryGirl.create(:content_builder, status: false)
|
18
19
|
expect(helper.all_contents_created).not_to include(content)
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
|
-
describe
|
23
|
-
it
|
23
|
+
describe '#find_content_created_by_slug' do
|
24
|
+
it 'return contents objects by slug with status true' do
|
24
25
|
content = FactoryGirl.create(:content_builder, status: true)
|
25
26
|
expect(helper.find_content_created_by_slug(content.slug)).to eq(content)
|
26
27
|
end
|
27
28
|
|
28
|
-
it
|
29
|
+
it 'return contents objects by slug with status true' do
|
29
30
|
content = FactoryGirl.create(:content_builder, status: false)
|
30
|
-
expect(
|
31
|
+
expect(
|
32
|
+
helper.find_content_created_by_slug(content.slug)
|
33
|
+
).not_to eq(content)
|
31
34
|
end
|
32
35
|
end
|
33
|
-
end
|
36
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
RSpec.describe RailsAdminContentBuilder::ContentBuilderCategory, :
|
3
|
+
RSpec.describe RailsAdminContentBuilder::ContentBuilderCategory, type: :model do
|
4
4
|
describe 'validates' do
|
5
5
|
it { should validate_presence_of(:name) }
|
6
6
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
RSpec.describe RailsAdminContentBuilder::ContentBuilder, :
|
3
|
+
RSpec.describe RailsAdminContentBuilder::ContentBuilder, type: :model do
|
4
4
|
describe 'validates' do
|
5
5
|
it { should validate_presence_of(:title) }
|
6
6
|
it { should validate_presence_of(:date_publish) }
|
@@ -14,29 +14,43 @@ RSpec.describe RailsAdminContentBuilder::ContentBuilder, :type => :model do
|
|
14
14
|
|
15
15
|
describe 'search' do
|
16
16
|
content = FactoryGirl.create(:content_builder)
|
17
|
+
content_builder = RailsAdminContentBuilder::ContentBuilder
|
17
18
|
|
18
19
|
it 'should return a searched content by title' do
|
19
|
-
output =
|
20
|
+
output = content_builder.search(content.title).last
|
20
21
|
expect(output).to eq(content)
|
21
22
|
end
|
22
23
|
|
23
24
|
it 'should return a searched content by content' do
|
24
|
-
output =
|
25
|
+
output = content_builder.search(content.content).last
|
25
26
|
expect(output).to eq(content)
|
26
27
|
end
|
27
28
|
end
|
28
29
|
|
29
30
|
describe 'content_sanitized' do
|
30
31
|
it 'should return only tag "div p img figure figcaption a iframe"' do
|
31
|
-
@content_input = '<div></div><input/><mytag myattr="teste"></mytag><p
|
32
|
-
@
|
32
|
+
@content_input = '<div></div><input/><mytag myattr="teste"></mytag><p>'
|
33
|
+
@content_input << '</p><img/><figure></figure><figcaption></figcaption>'
|
34
|
+
@content_input << '<a></a><iframe></iframe><textarea>'
|
35
|
+
|
36
|
+
@content_output = '<div></div><p></p><img><figure></figure><figcaption>'
|
37
|
+
@content_output << '</figcaption><a></a><iframe></iframe>'
|
38
|
+
|
33
39
|
content = FactoryGirl.create(:content_builder, content: @content_input)
|
34
40
|
expect(content.content_sanitized).to eq(@content_output)
|
35
41
|
end
|
36
42
|
|
37
|
-
|
38
|
-
|
39
|
-
@
|
43
|
+
# Return src class alt href allowfullscreen frameborder height width
|
44
|
+
it 'should return only attrs' do
|
45
|
+
@content_input = '<div class="test" data-method="test"></div><input/>'
|
46
|
+
@content_input << '<p id="test"></p><img src="test" id="test"/><figure>'
|
47
|
+
@content_input << '</figure><figcaption></figcaption><a href="#"></a>'
|
48
|
+
@content_input << '<iframe></iframe><textarea>'
|
49
|
+
|
50
|
+
@content_output = '<div class="test"></div><p></p><img src="test">'
|
51
|
+
@content_output << '<figure></figure><figcaption></figcaption>'
|
52
|
+
@content_output << '<a href="#"></a><iframe></iframe>'
|
53
|
+
|
40
54
|
content = FactoryGirl.create(:content_builder, content: @content_input)
|
41
55
|
expect(content.content_sanitized).to eq(@content_output)
|
42
56
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
ENV['RAILS_ENV'] ||= 'test'
|
2
2
|
|
3
|
-
require File.expand_path(
|
3
|
+
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
4
4
|
require 'rspec/rails'
|
5
5
|
require 'faker'
|
6
6
|
require 'rails_admin/engine'
|
7
7
|
require 'rails_admin/config'
|
8
8
|
require 'shoulda-matchers'
|
9
9
|
require 'factory_girl_rails'
|
10
|
-
require
|
10
|
+
require 'coveralls'
|
11
11
|
require 'simplecov'
|
12
12
|
|
13
|
-
|
13
|
+
Coveralls.wear!
|
14
14
|
SimpleCov.start
|
15
15
|
|
16
16
|
Rails.backtrace_cleaner.remove_silencers!
|
@@ -25,7 +25,7 @@ RSpec.configure do |config|
|
|
25
25
|
config.infer_base_class_for_anonymous_controllers = false
|
26
26
|
config.include RailsAdmin::Engine.routes.url_helpers
|
27
27
|
config.include RailsAdmin::Config
|
28
|
-
config.order =
|
28
|
+
config.order = 'random'
|
29
29
|
end
|
30
30
|
|
31
31
|
Shoulda::Matchers.configure do |config|
|
data/spec/version_spec.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
.cb,
|
4
4
|
.news {
|
5
|
-
font-size:
|
5
|
+
font-size: 1em;
|
6
6
|
|
7
7
|
a {
|
8
8
|
color: inherit;
|
@@ -28,7 +28,7 @@
|
|
28
28
|
margin: 0;
|
29
29
|
line-height: 1.2;
|
30
30
|
|
31
|
-
color: rgba(0,0,0,.
|
31
|
+
color: rgba(0,0,0,.65);
|
32
32
|
font-size: 1.4em;
|
33
33
|
letter-spacing: -.04em;
|
34
34
|
}
|
@@ -78,7 +78,7 @@
|
|
78
78
|
.news__content {
|
79
79
|
line-height: 1.6;
|
80
80
|
|
81
|
-
color: rgba(0,0,0,.
|
81
|
+
color: rgba(0,0,0,.6);
|
82
82
|
font-family: sans-serif;
|
83
83
|
font-size: .9em;
|
84
84
|
|
@@ -125,7 +125,6 @@
|
|
125
125
|
background: rgba(0,0,0,.05);
|
126
126
|
}
|
127
127
|
|
128
|
-
|
129
128
|
.cb-video,
|
130
129
|
.news__video {
|
131
130
|
position: relative;
|
@@ -147,29 +146,29 @@
|
|
147
146
|
margin-bottom: 1.5em;
|
148
147
|
}
|
149
148
|
|
150
|
-
|
151
149
|
.cb-blockquote {
|
152
150
|
position: relative;
|
153
|
-
margin: 0 0 1.
|
151
|
+
margin: 0 0 1.5em;
|
154
152
|
|
155
|
-
padding: 1.
|
153
|
+
padding: 1.5em 0 0 1.5em;
|
156
154
|
border: 0;
|
155
|
+
|
156
|
+
color: rgba(0,0,0,.5);
|
157
157
|
}
|
158
158
|
|
159
159
|
.cb-blockquote__text {
|
160
|
-
margin: 0 0
|
160
|
+
margin: 0 0 .5em;
|
161
161
|
|
162
162
|
line-height: 1.4;
|
163
163
|
|
164
|
-
color: rgba(0,0,0,.6);
|
165
164
|
font-family: sans-serif;
|
166
|
-
font-size:
|
165
|
+
font-size: 1em;
|
167
166
|
|
168
167
|
&:before {
|
169
168
|
content: "\“";
|
170
169
|
|
171
170
|
position: absolute;
|
172
|
-
top:
|
171
|
+
top: 0;
|
173
172
|
left: 0;
|
174
173
|
|
175
174
|
display: block;
|
@@ -186,9 +185,8 @@
|
|
186
185
|
|
187
186
|
padding-left: 1.5em;
|
188
187
|
|
189
|
-
color: rgba(0,0,0,.6);
|
190
188
|
font-family: sans-serif;
|
191
|
-
font-size:
|
189
|
+
font-size: .9em;
|
192
190
|
|
193
191
|
&:before {
|
194
192
|
content: "\2014 \00A0";
|
@@ -202,15 +200,15 @@
|
|
202
200
|
}
|
203
201
|
|
204
202
|
.cb-relational {
|
205
|
-
margin: 0 0 1.
|
206
|
-
padding-top: .
|
203
|
+
margin: 0 0 1.5em;
|
204
|
+
padding-top: .3em;
|
207
205
|
}
|
208
206
|
|
209
207
|
.cb-relational__title {
|
210
|
-
margin: 0 0 .
|
208
|
+
margin: 0 0 .5em;
|
211
209
|
|
212
210
|
line-height: 1;
|
213
|
-
padding-top: .
|
211
|
+
padding-top: .5em;
|
214
212
|
border-top: solid 4px rgba(0,0,0,.1);
|
215
213
|
|
216
214
|
color: rgba(0,0,0,.3);
|
@@ -227,7 +225,7 @@
|
|
227
225
|
|
228
226
|
.cb-relational__item {
|
229
227
|
position: relative;
|
230
|
-
padding:
|
228
|
+
padding: 1em 0;
|
231
229
|
border-bottom: solid 1px rgba(0,0,0,.05);
|
232
230
|
}
|
233
231
|
|
@@ -274,13 +272,12 @@
|
|
274
272
|
|
275
273
|
.cb-summary,
|
276
274
|
.news__summary {
|
277
|
-
margin: 1rem 0 0;
|
278
275
|
font-size: 1em;
|
279
276
|
}
|
280
277
|
|
281
278
|
.cb-info,
|
282
279
|
.news__info {
|
283
|
-
margin:
|
280
|
+
margin: 1em 0 0;
|
284
281
|
font-size: .8em;
|
285
282
|
}
|
286
283
|
|
@@ -315,23 +312,39 @@
|
|
315
312
|
}
|
316
313
|
|
317
314
|
.cb-blockquote {
|
318
|
-
padding:
|
315
|
+
padding: 2em 0 0 2em;
|
319
316
|
}
|
320
317
|
|
321
318
|
.cb-blockquote__text {
|
322
|
-
font-size: 1.
|
319
|
+
font-size: 1.2em;
|
323
320
|
}
|
324
321
|
|
325
322
|
.cb-blockquote--left {
|
326
323
|
float: left;
|
327
324
|
width: 50%;
|
328
|
-
margin: 0
|
325
|
+
margin: 0 2em 1.5em 0;
|
329
326
|
}
|
330
327
|
|
331
328
|
.cb-blockquote--right {
|
332
329
|
float: right;
|
333
330
|
width: 50%;
|
334
|
-
margin: 0 0 1.
|
331
|
+
margin: 0 0 1.5em 2em;
|
332
|
+
}
|
333
|
+
|
334
|
+
.cb-relational--left {
|
335
|
+
float: left;
|
336
|
+
margin: 0 1.5em 1.5em 0;
|
337
|
+
width: 50%;
|
338
|
+
}
|
339
|
+
|
340
|
+
.cb-relational--right {
|
341
|
+
float: right;
|
342
|
+
margin: 0 0 1.5em 1.5em;
|
343
|
+
width: 50%;
|
344
|
+
}
|
345
|
+
|
346
|
+
.cb-relational__caption {
|
347
|
+
font-size: 1em;
|
335
348
|
}
|
336
349
|
}
|
337
350
|
|
@@ -349,18 +362,22 @@
|
|
349
362
|
.cb-aside-title {
|
350
363
|
font-size: 1.2em;
|
351
364
|
}
|
365
|
+
}
|
352
366
|
|
353
|
-
|
367
|
+
@media print {
|
368
|
+
.cb-blockquote--left {
|
354
369
|
float: left;
|
355
|
-
margin: 0 1.5rem 1.5rem 0;
|
356
|
-
|
357
370
|
width: 50%;
|
371
|
+
margin: 0 2em 1.5em 0;
|
358
372
|
}
|
359
373
|
|
360
|
-
.cb-
|
374
|
+
.cb-blockquote--right {
|
361
375
|
float: right;
|
362
|
-
margin: 0 0 1.5rem 1.5rem;
|
363
|
-
|
364
376
|
width: 50%;
|
377
|
+
margin: 0 0 1.5em 2em;
|
378
|
+
}
|
379
|
+
|
380
|
+
.cb-relational {
|
381
|
+
display: none;
|
365
382
|
}
|
366
383
|
}
|