panda-editor 0.4.0 → 0.6.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.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Panda
4
4
  module Editor
5
- VERSION = "0.4.0"
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
data/lib/panda/editor.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "dry-configurable"
4
- require_relative "editor/version"
5
- require_relative "editor/engine"
3
+ require 'dry-configurable'
4
+ require_relative 'editor/version'
5
+ require_relative 'editor/engine'
6
6
 
7
7
  module Panda
8
8
  module Editor
@@ -17,20 +17,22 @@ module Panda
17
17
 
18
18
  class Error < StandardError; end
19
19
 
20
- # Autoload components
21
- autoload :Renderer, "panda/editor/renderer"
22
- autoload :Content, "panda/editor/content"
23
- autoload :FootnoteRegistry, "panda/editor/footnote_registry"
20
+ # Require components
21
+ require_relative 'editor/renderer'
22
+ require_relative 'editor/content'
23
+ require_relative 'editor/footnote_registry'
24
+ require_relative 'editor/markdown_to_editor_js_converter'
25
+ require_relative 'editor/html_to_editor_js_converter'
24
26
 
25
27
  module Blocks
26
- autoload :Base, "panda/editor/blocks/base"
27
- autoload :Alert, "panda/editor/blocks/alert"
28
- autoload :Header, "panda/editor/blocks/header"
29
- autoload :Image, "panda/editor/blocks/image"
30
- autoload :List, "panda/editor/blocks/list"
31
- autoload :Paragraph, "panda/editor/blocks/paragraph"
32
- autoload :Quote, "panda/editor/blocks/quote"
33
- autoload :Table, "panda/editor/blocks/table"
28
+ autoload :Base, 'panda/editor/blocks/base'
29
+ autoload :Alert, 'panda/editor/blocks/alert'
30
+ autoload :Header, 'panda/editor/blocks/header'
31
+ autoload :Image, 'panda/editor/blocks/image'
32
+ autoload :List, 'panda/editor/blocks/list'
33
+ autoload :Paragraph, 'panda/editor/blocks/paragraph'
34
+ autoload :Quote, 'panda/editor/blocks/quote'
35
+ autoload :Table, 'panda/editor/blocks/table'
34
36
  end
35
37
  end
36
38
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "panda/editor/version"
4
+ require "panda/editor/engine"
5
+ require "panda/editor"
@@ -2,14 +2,14 @@
2
2
 
3
3
  namespace :panda_editor do
4
4
  namespace :assets do
5
- desc "Compile Panda Editor assets for production"
5
+ desc 'Compile Panda Editor assets for production'
6
6
  task compile: :environment do
7
- require "fileutils"
7
+ require 'fileutils'
8
8
 
9
- puts "Compiling Panda Editor assets..."
9
+ puts 'Compiling Panda Editor assets...'
10
10
 
11
11
  # Create temporary directory for assets
12
- tmp_dir = Rails.root.join("tmp", "panda_editor_assets")
12
+ tmp_dir = Rails.root.join('tmp', 'panda_editor_assets')
13
13
  FileUtils.mkdir_p(tmp_dir)
14
14
 
15
15
  # Get version from gem
@@ -22,51 +22,51 @@ namespace :panda_editor do
22
22
  compile_css(tmp_dir, version)
23
23
 
24
24
  # Copy to public directory
25
- public_dir = Rails.root.join("public", "panda-editor-assets")
25
+ public_dir = Rails.root.join('public', 'panda-editor-assets')
26
26
  FileUtils.mkdir_p(public_dir)
27
- FileUtils.cp_r(Dir.glob(tmp_dir.join("*")), public_dir)
27
+ FileUtils.cp_r(Dir.glob(tmp_dir.join('*')), public_dir)
28
28
 
29
- puts "✅ Assets compiled successfully"
29
+ puts '✅ Assets compiled successfully'
30
30
  end
31
31
 
32
- desc "Download Panda Editor assets from GitHub"
32
+ desc 'Download Panda Editor assets from GitHub'
33
33
  task download: :environment do
34
- require "panda/editor/asset_loader"
34
+ require 'panda/editor/asset_loader'
35
35
 
36
- puts "Downloading Panda Editor assets from GitHub..."
36
+ puts 'Downloading Panda Editor assets from GitHub...'
37
37
  Panda::Editor::AssetLoader.send(:download_assets_from_github)
38
- puts "✅ Assets downloaded successfully"
38
+ puts '✅ Assets downloaded successfully'
39
39
  end
40
40
 
41
- desc "Upload compiled assets to GitHub release"
41
+ desc 'Upload compiled assets to GitHub release'
42
42
  task upload: :environment do
43
- require "net/http"
44
- require "json"
43
+ require 'net/http'
44
+ require 'json'
45
45
 
46
- puts "Uploading Panda Editor assets to GitHub release..."
46
+ puts 'Uploading Panda Editor assets to GitHub release...'
47
47
 
48
48
  # This task would be run in CI to upload compiled assets
49
49
  # to the GitHub release when a new version is tagged
50
50
 
51
- version = ENV["GITHUB_REF_NAME"] || "v#{Panda::Editor::VERSION}"
52
- token = ENV["GITHUB_TOKEN"]
51
+ version = ENV['GITHUB_REF_NAME'] || "v#{Panda::Editor::VERSION}"
52
+ token = ENV['GITHUB_TOKEN']
53
53
 
54
54
  unless token
55
- puts "❌ GITHUB_TOKEN environment variable required"
55
+ puts '❌ GITHUB_TOKEN environment variable required'
56
56
  exit 1
57
57
  end
58
58
 
59
59
  # Find compiled assets
60
- assets_dir = Rails.root.join("public", "panda-editor-assets")
61
- js_file = Dir.glob(assets_dir.join("panda-editor-*.js")).first
62
- css_file = Dir.glob(assets_dir.join("panda-editor-*.css")).first
60
+ assets_dir = Rails.root.join('public', 'panda-editor-assets')
61
+ js_file = Dir.glob(assets_dir.join('panda-editor-*.js')).first
62
+ css_file = Dir.glob(assets_dir.join('panda-editor-*.css')).first
63
63
 
64
64
  if js_file && css_file
65
65
  upload_to_release(js_file, version, token)
66
66
  upload_to_release(css_file, version, token)
67
- puts "✅ Assets uploaded successfully"
67
+ puts '✅ Assets uploaded successfully'
68
68
  else
69
- puts "❌ Compiled assets not found"
69
+ puts '❌ Compiled assets not found'
70
70
  exit 1
71
71
  end
72
72
  end
@@ -74,9 +74,9 @@ namespace :panda_editor do
74
74
  private
75
75
 
76
76
  def compile_javascript(tmp_dir, version)
77
- puts " Compiling JavaScript..."
77
+ puts ' Compiling JavaScript...'
78
78
 
79
- js_files = Dir.glob(Panda::Editor::Engine.root.join("app/javascript/panda/editor/**/*.js"))
79
+ js_files = Dir.glob(Panda::Editor::Engine.root.join('app/javascript/panda/editor/**/*.js'))
80
80
 
81
81
  output = js_files.map { |file| File.read(file) }.join("\n\n")
82
82
 
@@ -88,9 +88,9 @@ namespace :panda_editor do
88
88
  end
89
89
 
90
90
  def compile_css(tmp_dir, version)
91
- puts " Compiling CSS..."
91
+ puts ' Compiling CSS...'
92
92
 
93
- css_files = Dir.glob(Panda::Editor::Engine.root.join("app/assets/stylesheets/panda/editor/**/*.css"))
93
+ css_files = Dir.glob(Panda::Editor::Engine.root.join('app/assets/stylesheets/panda/editor/**/*.css'))
94
94
 
95
95
  output = css_files.map { |file| File.read(file) }.join("\n\n")
96
96
 
@@ -101,7 +101,7 @@ namespace :panda_editor do
101
101
  File.write(tmp_dir.join("panda-editor-#{version}.css"), output)
102
102
  end
103
103
 
104
- def upload_to_release(file, version, token)
104
+ def upload_to_release(file, _version, _token)
105
105
  # Implementation would upload to GitHub release
106
106
  # This is a placeholder for the actual upload logic
107
107
  puts " Uploading #{File.basename(file)}..."
data/panda-editor.gemspec CHANGED
@@ -1,43 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/panda/editor/version"
3
+ require_relative 'lib/panda/editor/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "panda-editor"
6
+ spec.name = 'panda-editor'
7
7
  spec.version = Panda::Editor::VERSION
8
- spec.authors = ["Otaina Limited", "James Inman"]
9
- spec.email = ["james@otaina.co.uk"]
8
+ spec.authors = ['Otaina Limited', 'James Inman']
9
+ spec.email = ['james@otaina.co.uk']
10
10
 
11
- spec.summary = "EditorJS integration for Rails applications"
12
- spec.description = "A modular, extensible rich text editor using EditorJS for Rails applications. Extracted from Panda CMS."
13
- spec.homepage = "https://github.com/tastybamboo/panda-editor"
14
- spec.license = "BSD-3-Clause"
15
- spec.required_ruby_version = ">= 3.2.0"
11
+ spec.summary = 'EditorJS integration for Rails applications'
12
+ spec.description = 'A modular, extensible rich text editor using EditorJS for Rails applications. Extracted from Panda CMS.'
13
+ spec.homepage = 'https://github.com/tastybamboo/panda-editor'
14
+ spec.license = 'BSD-3-Clause'
15
+ spec.required_ruby_version = '>= 3.2.0'
16
16
 
17
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
18
- spec.metadata["homepage_uri"] = spec.homepage
19
- spec.metadata["source_code_uri"] = "https://github.com/tastybamboo/panda-editor"
20
- spec.metadata["changelog_uri"] = "https://github.com/tastybamboo/panda-editor/blob/main/CHANGELOG.md"
17
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/tastybamboo/panda-editor'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/tastybamboo/panda-editor/blob/main/CHANGELOG.md'
21
21
 
22
22
  spec.files = Dir.chdir(__dir__) do
23
23
  `git ls-files -z`.split("\x0").reject do |f|
24
24
  (File.expand_path(f) == __FILE__) ||
25
25
  f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile]) ||
26
- f.end_with?(".gem")
26
+ f.end_with?('.gem')
27
27
  end
28
28
  end
29
- spec.bindir = "exe"
29
+ spec.bindir = 'exe'
30
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
31
+ spec.require_paths = ['lib']
32
32
 
33
33
  # Rails dependencies
34
- spec.add_dependency "rails", ">= 7.1"
35
- spec.add_dependency "sanitize", "~> 6.0"
36
- spec.add_dependency "dry-configurable", "~> 1.0"
37
- spec.add_dependency "redcarpet", "~> 3.6"
34
+ spec.add_dependency 'dry-configurable', '~> 1.0'
35
+ spec.add_dependency 'nokogiri', '~> 1.15'
36
+ spec.add_dependency 'rails', '>= 7.1'
37
+ spec.add_dependency 'redcarpet', '~> 3.6'
38
+ spec.add_dependency 'sanitize', '~> 6.0'
38
39
 
39
40
  # Development dependencies
40
- spec.add_development_dependency "rspec-rails", "~> 6.0"
41
- spec.add_development_dependency "factory_bot_rails", "~> 6.2"
42
- spec.add_development_dependency "standard", ">= 1.35.1"
41
+ spec.add_development_dependency 'factory_bot_rails', '~> 6.2'
42
+ spec.add_development_dependency 'rspec-rails', '~> 6.0'
43
+ spec.add_development_dependency 'standard', '>= 1.35.1'
43
44
  end
metadata CHANGED
@@ -1,58 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panda-editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Otaina Limited
8
8
  - James Inman
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2025-10-30 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rails
14
+ name: dry-configurable
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - ">="
17
+ - - "~>"
19
18
  - !ruby/object:Gem::Version
20
- version: '7.1'
19
+ version: '1.0'
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ">="
24
+ - - "~>"
26
25
  - !ruby/object:Gem::Version
27
- version: '7.1'
26
+ version: '1.0'
28
27
  - !ruby/object:Gem::Dependency
29
- name: sanitize
28
+ name: nokogiri
30
29
  requirement: !ruby/object:Gem::Requirement
31
30
  requirements:
32
31
  - - "~>"
33
32
  - !ruby/object:Gem::Version
34
- version: '6.0'
33
+ version: '1.15'
35
34
  type: :runtime
36
35
  prerelease: false
37
36
  version_requirements: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - "~>"
40
39
  - !ruby/object:Gem::Version
41
- version: '6.0'
40
+ version: '1.15'
42
41
  - !ruby/object:Gem::Dependency
43
- name: dry-configurable
42
+ name: rails
44
43
  requirement: !ruby/object:Gem::Requirement
45
44
  requirements:
46
- - - "~>"
45
+ - - ">="
47
46
  - !ruby/object:Gem::Version
48
- version: '1.0'
47
+ version: '7.1'
49
48
  type: :runtime
50
49
  prerelease: false
51
50
  version_requirements: !ruby/object:Gem::Requirement
52
51
  requirements:
53
- - - "~>"
52
+ - - ">="
54
53
  - !ruby/object:Gem::Version
55
- version: '1.0'
54
+ version: '7.1'
56
55
  - !ruby/object:Gem::Dependency
57
56
  name: redcarpet
58
57
  requirement: !ruby/object:Gem::Requirement
@@ -68,13 +67,13 @@ dependencies:
68
67
  - !ruby/object:Gem::Version
69
68
  version: '3.6'
70
69
  - !ruby/object:Gem::Dependency
71
- name: rspec-rails
70
+ name: sanitize
72
71
  requirement: !ruby/object:Gem::Requirement
73
72
  requirements:
74
73
  - - "~>"
75
74
  - !ruby/object:Gem::Version
76
75
  version: '6.0'
77
- type: :development
76
+ type: :runtime
78
77
  prerelease: false
79
78
  version_requirements: !ruby/object:Gem::Requirement
80
79
  requirements:
@@ -95,6 +94,20 @@ dependencies:
95
94
  - - "~>"
96
95
  - !ruby/object:Gem::Version
97
96
  version: '6.2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec-rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '6.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '6.0'
98
111
  - !ruby/object:Gem::Dependency
99
112
  name: standard
100
113
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +147,7 @@ files:
134
147
  - app/services/panda/editor/html_to_editor_js_converter.rb
135
148
  - config/importmap.rb
136
149
  - docs/FOOTNOTES.md
150
+ - lib/panda-editor.rb
137
151
  - lib/panda/editor.rb
138
152
  - lib/panda/editor/asset_loader.rb
139
153
  - lib/panda/editor/blocks/alert.rb
@@ -147,6 +161,8 @@ files:
147
161
  - lib/panda/editor/content.rb
148
162
  - lib/panda/editor/engine.rb
149
163
  - lib/panda/editor/footnote_registry.rb
164
+ - lib/panda/editor/html_to_editor_js_converter.rb
165
+ - lib/panda/editor/markdown_to_editor_js_converter.rb
150
166
  - lib/panda/editor/renderer.rb
151
167
  - lib/panda/editor/version.rb
152
168
  - lib/tasks/assets.rake
@@ -161,7 +177,6 @@ metadata:
161
177
  homepage_uri: https://github.com/tastybamboo/panda-editor
162
178
  source_code_uri: https://github.com/tastybamboo/panda-editor
163
179
  changelog_uri: https://github.com/tastybamboo/panda-editor/blob/main/CHANGELOG.md
164
- post_install_message:
165
180
  rdoc_options: []
166
181
  require_paths:
167
182
  - lib
@@ -176,8 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
191
  - !ruby/object:Gem::Version
177
192
  version: '0'
178
193
  requirements: []
179
- rubygems_version: 3.5.22
180
- signing_key:
194
+ rubygems_version: 3.7.2
181
195
  specification_version: 4
182
196
  summary: EditorJS integration for Rails applications
183
197
  test_files: []