markita 1.0.210828 → 3.0.210912

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,13 +19,15 @@ class Base
19
19
  basename = File.basename(path, '.*')
20
20
  text << "* [#{basename}](#{path})\n"
21
21
  end
22
- text << "\n![Favicon](/favicon.ico)\n" if defined? Favicon
22
+ if defined? Favicon and Favicon::ICO
23
+ text << "\n![Favicon](/favicon.ico)\n"
24
+ end
23
25
  text
24
26
  end
25
27
  end
26
28
 
27
29
  get '/about.html' do
28
- Base.page('about') { markdown About.page}
30
+ Markdown.new('About').markdown About.page
29
31
  end
30
32
  end
31
33
  end
@@ -0,0 +1,30 @@
1
+ module Markita
2
+ class Preprocess
3
+ def initialize(file)
4
+ @file = (file.is_a? String)? StringIO.new(file) : file
5
+ @regx = @template = nil
6
+ end
7
+
8
+ def gets
9
+ if line = @file.gets
10
+ case line
11
+ when @regx
12
+ line = @template if @template
13
+ $~.named_captures.each do |name, value|
14
+ line = line.gsub("&#{name.downcase};", value)
15
+ line = line.gsub("&#{name.upcase};", CGI.escape(value))
16
+ end
17
+ when %r(^! regx = /(.*)/$)
18
+ @regx = Regexp.new $1
19
+ line = gets
20
+ when %r(^! template = "(.*)"$)
21
+ @template = $1+"\n"
22
+ line = gets
23
+ else
24
+ @regx &&= (@template=nil)
25
+ end
26
+ end
27
+ line
28
+ end
29
+ end
30
+ end
data/lib/markita.rb CHANGED
@@ -1,17 +1,19 @@
1
1
  module Markita
2
- VERSION = '1.0.210828'
2
+ VERSION = '3.0.210912'
3
3
 
4
4
  def self.run!
5
5
  # Standard libraries
6
6
  require 'digest'
7
7
  require 'cgi'
8
8
  # Gems
9
+ require 'rouge'
9
10
  require 'sinatra/base'
10
- require 'kramdown'
11
11
  require 'thin'
12
- Tilt.register Tilt::KramdownTemplate, 'md'
13
12
  # Local
14
13
  require_relative 'markita/config.rb'
14
+ require_relative 'markita/html.rb'
15
+ require_relative 'markita/preprocess.rb'
16
+ require_relative 'markita/markdown.rb'
15
17
  require_relative 'markita/base.rb'
16
18
  # Plugs
17
19
  require_relative 'markita/plug/favicon.rb' unless OPTIONS&.no_favicon
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markita
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.210828
4
+ version: 3.0.210912
5
5
  platform: ruby
6
6
  authors:
7
7
  - CarlosJHR64
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-28 00:00:00.000000000 Z
11
+ date: 2021-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: help_parser
@@ -31,45 +31,45 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 7.0.200907
33
33
  - !ruby/object:Gem::Dependency
34
- name: sinatra
34
+ name: rouge
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.1'
39
+ version: '3.26'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 2.1.0
42
+ version: 3.26.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.1'
49
+ version: '3.26'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 2.1.0
52
+ version: 3.26.0
53
53
  - !ruby/object:Gem::Dependency
54
- name: kramdown
54
+ name: sinatra
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: '2.3'
59
+ version: '2.1'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 2.3.1
62
+ version: 2.1.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '2.3'
69
+ version: '2.1'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 2.3.1
72
+ version: 2.1.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: thin
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -91,10 +91,9 @@ dependencies:
91
91
  - !ruby/object:Gem::Version
92
92
  version: 1.8.1
93
93
  description: |
94
- A [Sinatra](http://sinatrarb.com) Markdown server.
94
+ A Sinatra Markdown server.
95
95
 
96
- Uses [Kramdown](https://kramdown.gettalong.org/index.html) for the Markdown to
97
- HTML conversion.
96
+ With many extra non-standard features.
98
97
  email: carlosjhr64@gmail.com
99
98
  executables:
100
99
  - markita
@@ -103,6 +102,7 @@ extra_rdoc_files: []
103
102
  files:
104
103
  - README.md
105
104
  - bin/markita
105
+ - data/emojis.tsv
106
106
  - data/favicon.ico
107
107
  - data/highlight.css
108
108
  - data/login_failed.html
@@ -111,11 +111,14 @@ files:
111
111
  - lib/markita.rb
112
112
  - lib/markita/base.rb
113
113
  - lib/markita/config.rb
114
+ - lib/markita/html.rb
115
+ - lib/markita/markdown.rb
114
116
  - lib/markita/plug/about.rb
115
117
  - lib/markita/plug/favicon.rb
116
118
  - lib/markita/plug/highlight.rb
117
119
  - lib/markita/plug/login.rb
118
120
  - lib/markita/plug/plugs.rb
121
+ - lib/markita/preprocess.rb
119
122
  homepage: https://github.com/carlosjhr64/markita
120
123
  licenses:
121
124
  - MIT
@@ -138,5 +141,5 @@ requirements: []
138
141
  rubygems_version: 3.2.22
139
142
  signing_key:
140
143
  specification_version: 4
141
- summary: A [Sinatra](http://sinatrarb.com) Markdown server.
144
+ summary: A Sinatra Markdown server.
142
145
  test_files: []