simpleblog 0.0.1

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/simpleblog.rb +41 -0
  3. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9f5eae049cc2930e851eaaf6d32a7230932f8b1044276554e856fa21cc3a1875
4
+ data.tar.gz: 0a690b86338a7dd6d2f6697c619c5db835bcd4a36108ab51920be5b34d5d2a3a
5
+ SHA512:
6
+ metadata.gz: c9ea4abd1efd2938941daed5efa33bf8e1d01c388e2491b8e5e426fa68d9f05a219f9e53790371a17e4af32aa1508c8c92f1835edf07734ee2be8d2dd1c4603d
7
+ data.tar.gz: 4bd09d0b6b58d518c8b75372a8e5b9bbd9bc9d467ce69aebc8b288c780b3d011ea83a40645e47cdbbda3e2aba5f7c6b283905a3ba2ce51399ce4149107ba8492
data/lib/simpleblog.rb ADDED
@@ -0,0 +1,41 @@
1
+ require 'redcarpet'
2
+ require 'rouge'
3
+ require_dependency 'rouge/plugins/redcarpet'
4
+
5
+ class ArticleHTMLRender < Redcarpet::Render::HTML
6
+ include Rouge::Plugins::Redcarpet
7
+ include ActionView::Helpers::AssetTagHelper
8
+
9
+ def image(link, title, alt_text)
10
+ if title =~ /=(\d+)x(\d+)/
11
+ %(<img src="#{ActionController::Base.helpers.asset_path(link)}" alt="#{alt_text}" class="markdown-image" style="max-width: #{$1}px; max-height:#{$2}px">)
12
+ else
13
+ %(<img src="#{ActionController::Base.helpers.asset_path(link)}" alt="#{alt_text}" class="markdown-image">)
14
+ end
15
+ end
16
+ end
17
+ class SimpleBlog
18
+ def self.render_article(id)
19
+ article_content = File.open("app/articles/#{id.to_i}.md").read
20
+ markdown = Redcarpet::Markdown.new(ArticleHTMLRender, fenced_code_blocks: true)
21
+
22
+ markdown.render(article_content)
23
+ end
24
+
25
+ def self.list_articles(tag = "", in_progress: "true")
26
+ articles_yml_result = YAML.load_file("app/articles/articles.yml")["articles"]
27
+ articles = Article.build_list_of_articles(articles_yml_result)
28
+
29
+ if tag.present?
30
+ articles = articles.filter { |article| article.tags.include?(tag) }
31
+ end
32
+
33
+ if in_progress == "true"
34
+ articles = articles.filter { |article| article.in_progress }
35
+ else
36
+ articles = articles.filter { |article| !article.in_progress }
37
+ end
38
+
39
+ articles.sort_by(&:id).reverse!
40
+ end
41
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simpleblog
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Caroline Salib
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-25 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Create a simple blog that can be edit with markdown
14
+ email: carolinesalibc@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/simpleblog.rb
20
+ homepage: https://rubygems.org/gems/simpleblog
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.2.32
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Simpler than a regular Rails blog and more dynamically customizable than
43
+ a Jekyll blog
44
+ test_files: []