Sha256: eeea63f1335d18c9249ef0e2728140ea1e1ca07f9102ccd36991ad23457f32ad
Contents?: true
Size: 1.31 KB
Versions: 4
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true require 'commander' class CreateSlidevPresentation EXAMPLE_SLIDES_URL = 'https://raw.githubusercontent.com/renuo/slidev-theme-renuo/main/example.md' SLIDEV_THEME_NAME = 'renuo' TEMPLATE_DIRECTORY = 'templates/slidev' attr_accessor :presentation_name, :presentation_author def initialize @presentation_name = nil @presentation_author = nil end def run(args) presentation_name = args[0] abort('>> No presentation name given.') unless presentation_name say '# Commands to setup Slidev project with the Renuo theme:'.colorize :green @presentation_name = presentation_name @presentation_author = args[1] || 'Renuo AG' print_slidev_project_commands end private def print_slidev_project_commands say "mkdir #{@presentation_name}" say "cd #{@presentation_name}" say "curl -o slides.md #{EXAMPLE_SLIDES_URL}" say "echo '#{render('README.md.erb')}' > README.md" say "sed -ig 's/theme: .\\//theme: renuo/' slides.md" say "echo '#{render('package.json.erb')}' > package.json" say 'npm install' say 'npm run dev' end def render(filename) file_path = File.join(File.dirname(__FILE__), TEMPLATE_DIRECTORY, filename) template = File.read(file_path) renderer = ERB.new(template) renderer.result(binding) end end
Version data entries
4 entries across 4 versions & 1 rubygems