slashdown 0.0.0

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/slashdown.rb +24 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c94ef3ca352e0d656dd574dbb97e48ed4ed9bed7b1cb14923e682aa87aea0a08
4
+ data.tar.gz: 54e95411210c54e9d9160d13edd6027e014505d1b2f1b8d9f34ea4a1f568fdce
5
+ SHA512:
6
+ metadata.gz: 8c41c393b5eab82b435042c5224c75b1d82fa8daf7391257849ab482bd71c25938d75b193bde9e6b3637fa349e66e2bc04f29ec8d34f61f944c5d221b9bc66fd
7
+ data.tar.gz: cbb3e90addf1219dee26c9b381e20e46296732fdf5431a3bc536f4d5557bacc32f5c439c0745c99c1961966911a202604d6418b7257e5efa6a6ae4b861388a77
data/lib/slashdown.rb ADDED
@@ -0,0 +1,24 @@
1
+ require_relative "lexer"
2
+ require_relative "parser"
3
+ require_relative "renderer"
4
+
5
+ module Slashdown
6
+ class TemplateRenderer
7
+ def self.render(src, context = {})
8
+ # Replace variables in the src
9
+ context.each do |key, value|
10
+ src.gsub!("{{#{key}}}", value.to_s)
11
+ end
12
+
13
+ # Parse the template
14
+ lexer = Lexer.new(src)
15
+ tokens = lexer.tokens
16
+ parser = Parser.new(tokens)
17
+ ast = parser.ast
18
+
19
+ # Render the AST to HTML
20
+ renderer = Renderer.new(ast)
21
+ renderer.render
22
+ end
23
+ end
24
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: slashdown
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Nick Noble
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-08-07 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: nick@miniware.team
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/slashdown.rb
20
+ homepage: http://github.com/miniware/slashdown_ruby
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.4.10
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Slashdown is a superset of Mardown for rich hypertext
43
+ test_files: []