paperwork 0.2.4 → 0.3.2
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/Rakefile +1 -1
- data/bin/paperwork +6 -0
- data/lib/paperwork.rb +2 -0
- data/lib/paperwork/cli.rb +83 -0
- data/lib/paperwork/tasks/document.rb +45 -15
- data/lib/paperwork/tasks/middleman_template/lib/doc_renderer.rb +0 -1
- data/lib/paperwork/tasks/middleman_template/lib/info_helpers.rb +10 -9
- data/lib/paperwork/tasks/template.rb +7 -7
- data/lib/paperwork/version.rb +1 -1
- data/paperwork.gemspec +1 -0
- data/{site.yml → paperwork.yml} +8 -0
- metadata +20 -7
- data/bin/console +0 -15
- data/bin/setup +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e485a22660790291fb8fc471ef6bbec18c5e8ef50bdebf8cbfac4fd5b90f1ebd
|
4
|
+
data.tar.gz: b275c2b329f53ca0c8584a596418c924183906a4df0cdedbb528ecb993024655
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6331130f7d21e226dd7021ff8fd94823d98f518fe93f373329247a3a09fb4b7564f6338001df33aa48666fe145fd22a4a0b8b3836e34e4c55bb21a928b93b89e
|
7
|
+
data.tar.gz: 8d02e0938cbae8cf07448d829edafeb3385d8b794f32310c8b8d335f15ee667c99c2fb27c098c64ddf5c769f2aa33b2a4b18a9c29492597b4c6c3268586581f8
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
paperwork (0.2
|
4
|
+
paperwork (0.3.2)
|
5
5
|
rake (~> 12.3)
|
6
6
|
redcarpet (~> 3.5.0)
|
7
|
+
thor (~> 1.1.0)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
@@ -51,6 +52,7 @@ GEM
|
|
51
52
|
docile (~> 1.1)
|
52
53
|
simplecov-html (~> 0.11)
|
53
54
|
simplecov-html (0.12.2)
|
55
|
+
thor (1.1.0)
|
54
56
|
unicode-display_width (1.7.0)
|
55
57
|
|
56
58
|
PLATFORMS
|
data/Rakefile
CHANGED
@@ -13,4 +13,4 @@ task rebuild: [:clean, :build]
|
|
13
13
|
task default: :spec
|
14
14
|
CLEAN.include(".work/coverage")
|
15
15
|
|
16
|
-
paperwork :doc, sources: ["README.md", "nested_example/navdemo.md", "
|
16
|
+
paperwork :doc, sources: ["README.md", "nested_example/navdemo.md", "paperwork.yml", "custom.js", "custom.css"]
|
data/bin/paperwork
ADDED
data/lib/paperwork.rb
CHANGED
@@ -0,0 +1,83 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
##
|
4
|
+
# globla namespace for paperwork
|
5
|
+
#
|
6
|
+
module Paperwork
|
7
|
+
require "yaml"
|
8
|
+
require "thor"
|
9
|
+
require "paperwork"
|
10
|
+
|
11
|
+
##
|
12
|
+
# command line interface for paperwork
|
13
|
+
#
|
14
|
+
class CLI < Thor
|
15
|
+
attr_accessor :config
|
16
|
+
|
17
|
+
CONFIG_FILE = "paperwork.yml"
|
18
|
+
|
19
|
+
class_option :verbose, aliases: "-v", desc: "be verbose about the build", type: :boolean, default: false
|
20
|
+
|
21
|
+
desc "build",
|
22
|
+
<<~DESC
|
23
|
+
creates documentation as defined in
|
24
|
+
#{CONFIG_FILE} and writes it to
|
25
|
+
'#{Paperwork::Config[:build_root]}/<name>/build'
|
26
|
+
DESC
|
27
|
+
def build
|
28
|
+
build_internal "build"
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "rebuild",
|
32
|
+
<<~DESC
|
33
|
+
removes previous builds and creates
|
34
|
+
documentation as defined in
|
35
|
+
#{CONFIG_FILE} and writes it to
|
36
|
+
'#{Paperwork::Config[:build_root]}/<name>/build'
|
37
|
+
DESC
|
38
|
+
def rebuild
|
39
|
+
build_internal "rebuild"
|
40
|
+
end
|
41
|
+
|
42
|
+
desc "server",
|
43
|
+
"starts a aerver that serves documentation as defined in #{CONFIG_FILE}"
|
44
|
+
def server
|
45
|
+
build_internal "server"
|
46
|
+
end
|
47
|
+
|
48
|
+
protected
|
49
|
+
|
50
|
+
def build_internal(task)
|
51
|
+
setup_config
|
52
|
+
setup_tasks
|
53
|
+
invoke_tasks task
|
54
|
+
end
|
55
|
+
|
56
|
+
def setup_config
|
57
|
+
unless File.exist?(CONFIG_FILE)
|
58
|
+
raise Exception.new(
|
59
|
+
"#{CONFIG_FILE} not found. You need to create a configuration file first."
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
yaml = YAML.load_file(CONFIG_FILE)
|
64
|
+
self.config = yaml["config"]
|
65
|
+
self.config["sources"] << CONFIG_FILE
|
66
|
+
|
67
|
+
return unless self.config.nil?
|
68
|
+
|
69
|
+
raise Exception.new(
|
70
|
+
"No 'config' found in #{CONFIG_FILE}. You need to describe the build setup in a 'config' section first."
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
def setup_tasks
|
75
|
+
paperwork self.config["name"], sources: self.config["sources"]
|
76
|
+
end
|
77
|
+
|
78
|
+
def invoke_tasks(target)
|
79
|
+
Rake::Task["paperwork:#{self.config["name"]}:set_verbose"].invoke if options[:verbose]
|
80
|
+
Rake::Task["paperwork:#{self.config["name"]}:#{target}"].invoke
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -9,7 +9,7 @@ module Paperwork
|
|
9
9
|
##
|
10
10
|
# main task generator for building the document
|
11
11
|
#
|
12
|
-
class Document < Paperwork::Tasks::Base
|
12
|
+
class Document < Paperwork::Tasks::Base # rubocop:disable Metrics/ClassLength
|
13
13
|
attr_reader :dir
|
14
14
|
|
15
15
|
include Rake::DSL
|
@@ -34,12 +34,18 @@ module Paperwork
|
|
34
34
|
|
35
35
|
private
|
36
36
|
|
37
|
-
def get_destination(dst_base, src) # rubocop:disable Metrics/AbcSize
|
38
|
-
|
37
|
+
def get_destination(dst_base, src) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
38
|
+
nested_base = File.dirname(src)
|
39
|
+
nested_base = if nested_base == "."
|
40
|
+
dst_base
|
41
|
+
else
|
42
|
+
File.join(dst_base, nested_base)
|
43
|
+
end
|
44
|
+
|
39
45
|
ext = File.extname(src)
|
40
46
|
case ext
|
41
47
|
when ".md"
|
42
|
-
File.join(
|
48
|
+
File.join(nested_base, File.basename(src)).gsub(".md", ".html.md")
|
43
49
|
when ".scss"
|
44
50
|
Paperwork::Config[:custom_css] << File.basename(src, ext)
|
45
51
|
File.join(dst_base, "stylesheets", File.basename(src)).gsub(".scss", ".css.scss")
|
@@ -62,17 +68,16 @@ module Paperwork
|
|
62
68
|
task self.name => self.dependencies do
|
63
69
|
verbose_flag = Paperwork::Config[:verbose] ? " --verbose" : ""
|
64
70
|
Dir.chdir(self.dir) do
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
out: :out,
|
69
|
-
|
70
|
-
|
71
|
-
)
|
71
|
+
cmd = "bundle exec middleman build#{verbose_flag}"
|
72
|
+
if defined? Bundler
|
73
|
+
Bundler.with_unbundled_env do
|
74
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
75
|
+
end
|
76
|
+
else
|
77
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
72
78
|
end
|
73
79
|
Process.waitall
|
74
80
|
end
|
75
|
-
|
76
81
|
puts
|
77
82
|
puts "...Done!"
|
78
83
|
puts "build artifacts are located in #{File.join(self.dir, "build")}"
|
@@ -80,9 +85,9 @@ module Paperwork
|
|
80
85
|
end
|
81
86
|
end
|
82
87
|
|
83
|
-
def tasks_nested # rubocop:disable Metrics/AbcSize
|
84
|
-
namespace :paperwork do
|
85
|
-
namespace self.name do
|
88
|
+
def tasks_nested # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
89
|
+
namespace :paperwork do # rubocop:disable Metrics/BlockLength
|
90
|
+
namespace self.name do # rubocop:disable Metrics/BlockLength
|
86
91
|
task build: ["paperwork:#{self.name}"]
|
87
92
|
|
88
93
|
desc "rebuild documentation from scratch for '#{self.name}'"
|
@@ -99,6 +104,31 @@ module Paperwork
|
|
99
104
|
task :clean do
|
100
105
|
rm_rf self.dir
|
101
106
|
end
|
107
|
+
|
108
|
+
desc "start middleman server for editing documents and get visual feedback with live reload"
|
109
|
+
task server: :build do
|
110
|
+
Dir.chdir(self.dir) do
|
111
|
+
cmd = "bundle exec middleman server"
|
112
|
+
if defined? Bundler
|
113
|
+
Bundler.with_unbundled_env do
|
114
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
115
|
+
end
|
116
|
+
else
|
117
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
118
|
+
end
|
119
|
+
puts
|
120
|
+
puts "+---------------------------------------------------------------+"
|
121
|
+
puts "| |"
|
122
|
+
puts "| IMPORTANT: Edit documents in #{self.dir} for live reload! |"
|
123
|
+
puts "| ---------- The documents there are hard links to your |"
|
124
|
+
puts "| source files, so the changes will be there |"
|
125
|
+
puts "| as well. |"
|
126
|
+
puts "| |"
|
127
|
+
puts "+---------------------------------------------------------------+"
|
128
|
+
puts
|
129
|
+
Process.waitall
|
130
|
+
end
|
131
|
+
end
|
102
132
|
end
|
103
133
|
end
|
104
134
|
end
|
@@ -20,7 +20,7 @@ module InfoHelpers
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
def relative_link(stringifyable, current_path=current_page.path)
|
23
|
+
def relative_link(stringifyable, current_path = current_page.path)
|
24
24
|
relative = String.new
|
25
25
|
dots = current_path.split(/[\/\\]/).size - 1
|
26
26
|
dots.times{ relative += "../" }
|
@@ -35,28 +35,29 @@ module InfoHelpers
|
|
35
35
|
relative + stringifyable.to_s
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
39
|
-
data.respond_to?(:
|
38
|
+
def paperwork?
|
39
|
+
data.respond_to?(:paperwork)
|
40
40
|
end
|
41
41
|
|
42
42
|
def navbar?
|
43
|
-
|
43
|
+
paperwork? && data.paperwork.respond_to?(:navbar)
|
44
44
|
end
|
45
45
|
|
46
46
|
def navbar_links
|
47
|
-
nav = data.
|
47
|
+
nav = data.paperwork.navbar.links if navbar?
|
48
48
|
nav ||= {}
|
49
|
+
mapped = {}
|
49
50
|
nav.each do |name, link|
|
50
|
-
|
51
|
+
mapped[name] = relative_link(link)
|
51
52
|
end
|
52
|
-
|
53
|
+
mapped
|
53
54
|
end
|
54
55
|
|
55
56
|
def navbar_brand
|
56
|
-
data.
|
57
|
+
data.paperwork.navbar.brand if navbar?
|
57
58
|
end
|
58
59
|
|
59
60
|
def footer_text
|
60
|
-
data.
|
61
|
+
data.paperwork.footer if paperwork?
|
61
62
|
end
|
62
63
|
end
|
@@ -28,13 +28,13 @@ module Paperwork
|
|
28
28
|
directory self.name => self.dependencies do
|
29
29
|
cp_r template, self.dir
|
30
30
|
Dir.chdir(self.dir) do
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
out: :out,
|
35
|
-
|
36
|
-
|
37
|
-
)
|
31
|
+
cmd = "bundle install --path=../.bundle/gems --jobs 8 --without test development"
|
32
|
+
if defined? Bundler
|
33
|
+
Bundler.with_unbundled_env do
|
34
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
35
|
+
end
|
36
|
+
else
|
37
|
+
Process.spawn(cmd, out: :out, in: :in, err: :err)
|
38
38
|
end
|
39
39
|
Process.spawn("yarn install", out: :out, in: :in, err: :err)
|
40
40
|
Process.waitall
|
data/lib/paperwork/version.rb
CHANGED
data/paperwork.gemspec
CHANGED
data/{site.yml → paperwork.yml}
RENAMED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paperwork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Schmid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -108,12 +108,25 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 3.5.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: thor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.1.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.1.0
|
111
125
|
description:
|
112
126
|
email:
|
113
127
|
- couchbelag@gmail.com
|
114
128
|
executables:
|
115
|
-
-
|
116
|
-
- setup
|
129
|
+
- paperwork
|
117
130
|
extensions: []
|
118
131
|
extra_rdoc_files: []
|
119
132
|
files:
|
@@ -127,13 +140,13 @@ files:
|
|
127
140
|
- LICENSE.txt
|
128
141
|
- README.md
|
129
142
|
- Rakefile
|
130
|
-
- bin/
|
131
|
-
- bin/setup
|
143
|
+
- bin/paperwork
|
132
144
|
- custom.css
|
133
145
|
- custom.js
|
134
146
|
- lib/paperwork.rb
|
135
147
|
- lib/paperwork/assets/paperwork/presentation.css
|
136
148
|
- lib/paperwork/assets/presentation.css
|
149
|
+
- lib/paperwork/cli.rb
|
137
150
|
- lib/paperwork/config.rb
|
138
151
|
- lib/paperwork/tasks.rb
|
139
152
|
- lib/paperwork/tasks/base.rb
|
@@ -163,7 +176,7 @@ files:
|
|
163
176
|
- lib/paperwork/version.rb
|
164
177
|
- nested_example/navdemo.md
|
165
178
|
- paperwork.gemspec
|
166
|
-
-
|
179
|
+
- paperwork.yml
|
167
180
|
homepage: https://gitlab.com/couchbelag/paperwork
|
168
181
|
licenses:
|
169
182
|
- MIT
|
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require "bundler/setup"
|
5
|
-
require "paperwork"
|
6
|
-
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
9
|
-
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
-
# require "pry"
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require "irb"
|
15
|
-
IRB.start(__FILE__)
|