Module: Inkpen

Defined in:
lib/inkpen.rb,
lib/inkpen/editor.rb,
lib/inkpen/engine.rb,
lib/inkpen/toolbar.rb,
lib/inkpen/version.rb,
lib/inkpen/configuration.rb,
lib/inkpen/markdown_mode.rb,
lib/inkpen/sticky_toolbar.rb,
lib/inkpen/extensions/base.rb,
lib/inkpen/extensions/table.rb,
lib/inkpen/extensions/mention.rb,
lib/inkpen/extensions/section.rb,
lib/inkpen/extensions/task_list.rb,
lib/inkpen/extensions/preformatted.rb,
lib/inkpen/extensions/slash_commands.rb,
lib/inkpen/extensions/forced_document.rb,
lib/inkpen/extensions/document_section.rb,
lib/inkpen/extensions/code_block_syntax.rb,
app/helpers/inkpen/editor_helper.rb

Overview

Inkpen is a TipTap-based rich text editor gem for Rails applications.

It provides a customizable WYSIWYG editor with Notion-like features including:

  • Block-based editing with drag & drop

  • Slash commands for quick block insertion

  • Multiple toolbar options (floating, fixed, sticky)

  • 16+ custom TipTap extensions

  • Export to Markdown, HTML, and PDF

Examples:

Basic usage with Rails form

<%= inkpen_editor form, :content %>

With configuration

Inkpen.configure do |config|
  config.toolbar = :floating
  config.extensions = [:bold, :italic, :link, :slash_commands]
  config.placeholder = "Start writing..."
end

Full-featured editor

<%= inkpen_editor form, :content,
    toolbar: :sticky,
    extensions: [:slash_commands, :block_gutter, :drag_handle, :export_commands] %>

See Also:

Author:

  • Nauman Tariq

Since:

  • 0.1.0

Defined Under Namespace

Modules: EditorHelper, Extensions Classes: Configuration, Editor, Engine, Error, MarkdownMode, StickyToolbar, Toolbar

Constant Summary collapse

VERSION =

Since:

  • 0.1.0

"0.8.2"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationConfiguration

Returns the global configuration instance.

Returns:

Since:

  • 0.1.0



70
71
72
# File 'lib/inkpen.rb', line 70

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|config| ... } ⇒ Object

Configure Inkpen globally.

Examples:

Inkpen.configure do |config|
  config.toolbar = :floating
  config.extensions = [:bold, :italic, :link]
end

Yields:

  • (config)

    Yields the configuration object for modification

Yield Parameters:

Since:

  • 0.1.0



86
87
88
# File 'lib/inkpen.rb', line 86

def configure
  yield(configuration)
end

.reset_configuration!Configuration

Reset configuration to defaults.

Useful for testing or reinitializing the editor configuration.

Returns:

Since:

  • 0.1.0



97
98
99
# File 'lib/inkpen.rb', line 97

def reset_configuration!
  @configuration = Configuration.new
end