From 6550724a26034dca0274388ceaff923f78cd882c Mon Sep 17 00:00:00 2001 From: Quincy Morgan <2046746+quincylvania@users.noreply.github.com> Date: Wed, 3 Jul 2024 12:55:00 -0400 Subject: [PATCH] Add manual-markdown plugin that allows explicit declaration of markdown blocks in liquid syntax --- Gemfile | 1 + README.md | 1 + _plugins/manual-markdown/Gemfile | 4 ++++ _plugins/manual-markdown/lib/manual-markdown.rb | 14 ++++++++++++++ _plugins/manual-markdown/manual-markdown.gemspec | 16 ++++++++++++++++ dogwood.gemspec | 1 + 6 files changed, 37 insertions(+) create mode 100644 _plugins/manual-markdown/Gemfile create mode 100644 _plugins/manual-markdown/lib/manual-markdown.rb create mode 100644 _plugins/manual-markdown/manual-markdown.gemspec diff --git a/Gemfile b/Gemfile index e8bef19..858a0b6 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,7 @@ source "https://rubygems.org" # these gems aren't published so we need to tell ruby where they're located gem "absolute-urls", path: "_plugins/absolute-urls" +gem "manual-markdown", path: "_plugins/manual-markdown" gem "post-aliases", path: "_plugins/post-aliases" gem "unwrap-img", path: "_plugins/unwrap-img" diff --git a/README.md b/README.md index c15a9f7..bebe60b 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ gem "osmus-dogwood", path: "dogwood" # theme plugins gem "absolute-urls", path: "./dogwood/_plugins/absolute-urls" +gem "manual-markdown", path: "./dogwood/_plugins/manual-markdown" gem "post-aliases", path: "./dogwood/_plugins/post-aliases" gem "unwrap-img", path: "./dogwood/_plugins/unwrap-img" ``` diff --git a/_plugins/manual-markdown/Gemfile b/_plugins/manual-markdown/Gemfile new file mode 100644 index 0000000..bb94df8 --- /dev/null +++ b/_plugins/manual-markdown/Gemfile @@ -0,0 +1,4 @@ +# frozen_string_literal: true + +source "https://rubygems.org" +gemspec diff --git a/_plugins/manual-markdown/lib/manual-markdown.rb b/_plugins/manual-markdown/lib/manual-markdown.rb new file mode 100644 index 0000000..3508f20 --- /dev/null +++ b/_plugins/manual-markdown/lib/manual-markdown.rb @@ -0,0 +1,14 @@ +module Jekyll + class MarkdownBlock < Liquid::Block + def initialize(tag_name, text, tokens) + super + end + require "kramdown" + def render(context) + content = super + "#{Kramdown::Document.new(content).to_html}" + end + end +end + +Liquid::Template.register_tag('markdown', Jekyll::MarkdownBlock) \ No newline at end of file diff --git a/_plugins/manual-markdown/manual-markdown.gemspec b/_plugins/manual-markdown/manual-markdown.gemspec new file mode 100644 index 0000000..ec0067b --- /dev/null +++ b/_plugins/manual-markdown/manual-markdown.gemspec @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +Gem::Specification.new do |spec| + spec.name = "manual-markdown" + spec.version = "0.1.0" + spec.authors = ["Quincy Morgan"] + spec.email = ["2046746+quincylvania@users.noreply.github.com"] + + spec.summary = "Declare markdown blocks using {% markdown %} and {% endmarkdown %}" + spec.homepage = "https://github.com/osmus/dogwood" + spec.license = "MIT" + + spec.files = Dir["lib/**/*"] + + spec.add_runtime_dependency "jekyll", "~> 4.3" +end diff --git a/dogwood.gemspec b/dogwood.gemspec index 7814252..e66be63 100644 --- a/dogwood.gemspec +++ b/dogwood.gemspec @@ -20,6 +20,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency 'jekyll-include-cache', "~> 0.2.1" spec.add_runtime_dependency "absolute-urls" + spec.add_runtime_dependency "manual-markdown" spec.add_runtime_dependency "post-aliases" spec.add_runtime_dependency "unwrap-img" end