jekyll-dyndoc 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/jekyll-dyndoc.rb +153 -0
- metadata +61 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: dcc449b18530e0eec2da69b99e1b3b3a0c762b49
|
4
|
+
data.tar.gz: fdcd022c8eb664fbc0e301683b445f352ead029c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e1fb5dd88a21f657ca50d4bf73aecdab147120e84ed9f564f864d60c2c689b49616d34172bf39cfd14e0985d661b18bcab999a6b1a2bb224d2a3a3e1bcf79b46
|
7
|
+
data.tar.gz: 312da2ecbb7b979f65724e198c580a46a07752bc6c0f0bb8e3ed1a9fd83c16c9afdb59d0c448b126ea7ce7f2793c2645c202b19f89b36964b8d0792ecf4ceaf3
|
@@ -0,0 +1,153 @@
|
|
1
|
+
JEKYLL_MIN_VERSION_3 = Gem::Version.new(Jekyll::VERSION) >= Gem::Version.new('3.0.0') unless defined? JEKYLL_MIN_VERSION_3
|
2
|
+
|
3
|
+
module Jekyll
|
4
|
+
module Converters
|
5
|
+
class DyndocConverter < Converter
|
6
|
+
|
7
|
+
safe true
|
8
|
+
|
9
|
+
def initialize(config)
|
10
|
+
@config = config
|
11
|
+
config['dyndoc'] ||= 'dyndoc-server'
|
12
|
+
dyndoc_ext = (config['dyndoc_ext'] ||= 'dyn')
|
13
|
+
config['dyndoc_ext_re'] = Regexp.new("\.(#{dyndoc_ext.tr ',', '|'})$", Regexp::IGNORECASE)
|
14
|
+
config['dyndoc_page_attribute_prefix'] ||= 'page'
|
15
|
+
# unless (dyndoc_config = (config['dyndoc'] ||= {})).frozen?
|
16
|
+
# # NOTE convert keys to symbols
|
17
|
+
# dyndoc_config.keys.each do |key|
|
18
|
+
# dyndoc_config[key.to_sym] = dyndoc_config.delete(key)
|
19
|
+
# end
|
20
|
+
# dyndoc_config[:safe] ||= 'safe'
|
21
|
+
# (dyndoc_config[:attributes] ||= []).tap do |attributes|
|
22
|
+
# attributes.unshift('notitle', 'hardbreaks', 'idprefix', 'idseparator=-', 'linkattrs')
|
23
|
+
# attributes.concat(IMPLICIT_ATTRIBUTES)
|
24
|
+
# end
|
25
|
+
# dyndoc_config.freeze
|
26
|
+
# end
|
27
|
+
end
|
28
|
+
|
29
|
+
def setup
|
30
|
+
return if @setup
|
31
|
+
@setup = true
|
32
|
+
case @config['dyndoc']
|
33
|
+
when 'dyndoc','dyndoc-server'
|
34
|
+
begin
|
35
|
+
require 'dyndoc-convert' unless defined? ::Dyndoc
|
36
|
+
rescue LoadError
|
37
|
+
STDERR.puts 'You are missing a library required to convert Dyndoc files. Please run:'
|
38
|
+
STDERR.puts ' $ [sudo] gem install dyndoc-ruby'
|
39
|
+
raise FatalException.new('Missing dependency: dyndoc')
|
40
|
+
end
|
41
|
+
else
|
42
|
+
STDERR.puts "Invalid Dyndoc processor: #{@config['dyndoc']}"
|
43
|
+
STDERR.puts ' Valid options are [ dyndoc ]'
|
44
|
+
raise FatalException.new("Invalid Dyndoc processor: #{@config['dyndoc']}")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def matches(ext)
|
49
|
+
ext =~ @config['dyndoc_ext_re']
|
50
|
+
end
|
51
|
+
|
52
|
+
def output_ext(ext)
|
53
|
+
'.html'
|
54
|
+
end
|
55
|
+
|
56
|
+
def convert(content)
|
57
|
+
setup
|
58
|
+
p [:config,@config]
|
59
|
+
case @config['dyndoc']
|
60
|
+
when 'dyndoc'
|
61
|
+
res=Dyndoc.convert(content, @config['dyndoc'])
|
62
|
+
p [:res,res]
|
63
|
+
res || ""
|
64
|
+
when 'dyndoc-server'
|
65
|
+
p [:content,content]
|
66
|
+
res=Dyndoc.cli_convert(content, @config['dyndoc'])
|
67
|
+
p [:res,res]
|
68
|
+
res || ""
|
69
|
+
else
|
70
|
+
warn 'Unknown Dyndoc converter. Passing through raw content.'
|
71
|
+
content
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# def load_header(content)
|
76
|
+
# setup
|
77
|
+
# case @config['dyndoc']
|
78
|
+
# when 'dyndoc'
|
79
|
+
# Dyndoc.load(content, parse_header_only: true)
|
80
|
+
# else
|
81
|
+
# warn 'Unknown Dyndoc converter. Cannot load document header.'
|
82
|
+
# nil
|
83
|
+
# end
|
84
|
+
# end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# module Generators
|
89
|
+
# # Promotes select Dyndoc attributes to Jekyll front matter
|
90
|
+
# class DyndocPreprocessor < Generator
|
91
|
+
# def generate(site)
|
92
|
+
# dyndoc_converter = JEKYLL_MIN_VERSION_3 ?
|
93
|
+
# site.find_converter_instance(Jekyll::Converters::DyndocConverter) :
|
94
|
+
# site.getConverterImpl(Jekyll::Converters::DyndocConverter)
|
95
|
+
# dyndoc_converter.setup
|
96
|
+
# unless (page_attr_prefix = site.config['dyndoc_page_attribute_prefix']).empty?
|
97
|
+
# page_attr_prefix = %(#{page_attr_prefix}-)
|
98
|
+
# end
|
99
|
+
# page_attr_prefix_l = page_attr_prefix.length
|
100
|
+
#
|
101
|
+
# site.pages.each do |page|
|
102
|
+
# if dyndoc_converter.matches(page.ext)
|
103
|
+
# next unless (doc = dyndoc_converter.load_header(page.content))
|
104
|
+
#
|
105
|
+
# page.data['title'] = doc.doctitle if doc.header?
|
106
|
+
# page.data['author'] = doc.author if doc.author
|
107
|
+
#
|
108
|
+
# unless (dyndoc_front_matter = doc.attributes
|
109
|
+
# .select {|name| name.start_with?(page_attr_prefix) }
|
110
|
+
# .map {|name, val| %(#{name[page_attr_prefix_l..-1]}: #{val}) }).empty?
|
111
|
+
# page.data.update(SafeYAML.load(dyndoc_front_matter * "\n"))
|
112
|
+
# end
|
113
|
+
#
|
114
|
+
# page.data['layout'] = 'default' unless page.data.key? 'layout'
|
115
|
+
# end
|
116
|
+
# end
|
117
|
+
#
|
118
|
+
# (JEKYLL_MIN_VERSION_3 ? site.posts.docs : site.posts).each do |post|
|
119
|
+
# if dyndoc_converter.matches(JEKYLL_MIN_VERSION_3 ? post.data['ext'] : post.ext)
|
120
|
+
# next unless (doc = dyndoc_converter.load_header(post.content))
|
121
|
+
#
|
122
|
+
# post.data['title'] = doc.doctitle if doc.header?
|
123
|
+
# post.data['author'] = doc.author if doc.author
|
124
|
+
# post.data['date'] = DateTime.parse(doc.revdate).to_time if doc.attr? 'revdate'
|
125
|
+
#
|
126
|
+
# unless (dyndoc_front_matter = doc.attributes
|
127
|
+
# .select {|name| name.start_with?(page_attr_prefix) }
|
128
|
+
# .map {|name, val| %(#{name[page_attr_prefix_l..-1]}: #{val}) }).empty?
|
129
|
+
# post.data.update(SafeYAML.load(dyndoc_front_matter * "\n"))
|
130
|
+
# end
|
131
|
+
#
|
132
|
+
# post.data['layout'] = 'post' unless post.data.key? 'layout'
|
133
|
+
# end
|
134
|
+
# end
|
135
|
+
# end
|
136
|
+
# end
|
137
|
+
# end
|
138
|
+
|
139
|
+
module Filters
|
140
|
+
# Convert an Dyndoc string into HTML output.
|
141
|
+
#
|
142
|
+
# input - The Dyndoc String to convert.
|
143
|
+
#
|
144
|
+
# Returns the HTML formatted String.
|
145
|
+
def dyndocify(input)
|
146
|
+
site = @context.registers[:site]
|
147
|
+
converter = JEKYLL_MIN_VERSION_3 ?
|
148
|
+
site.find_converter_instance(Jekyll::Converters::DyndocConverter) :
|
149
|
+
site.getConverterImpl(Jekyll::Converters::DyndocConverter)
|
150
|
+
converter.convert(input)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-dyndoc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- CQLS
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-06-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dyndoc-ruby
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.6.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.6.0
|
27
|
+
description: |2
|
28
|
+
Dyndoc jekyll plugin.
|
29
|
+
email: rdrouilh@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- lib/jekyll-dyndoc.rb
|
35
|
+
homepage: http://cqls.upmf-grenoble.fr
|
36
|
+
licenses:
|
37
|
+
- MIT
|
38
|
+
- GPL-2
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements:
|
55
|
+
- none
|
56
|
+
rubyforge_project:
|
57
|
+
rubygems_version: 2.0.14
|
58
|
+
signing_key:
|
59
|
+
specification_version: 4
|
60
|
+
summary: jekyll dyndoc
|
61
|
+
test_files: []
|