germinate 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/History.txt +26 -0
- data/README.rdoc +152 -0
- data/Rakefile +43 -0
- data/TODO +140 -0
- data/bin/germ +260 -0
- data/cucumber.yml +2 -0
- data/examples/basic.rb +123 -0
- data/examples/short.rb +19 -0
- data/features/author-formats-article.feature +111 -0
- data/features/author-lists-info.pending_feature +48 -0
- data/features/author-publishes-article-source.feature +5 -0
- data/features/author-publishes-article.feature +57 -0
- data/features/author-republishes-article.feature +5 -0
- data/features/author-selects-hunks.feature +26 -0
- data/features/author-sets-variables.feature +88 -0
- data/features/author-updates-article-source.feature +5 -0
- data/features/author-views-stuff.pending_feature +52 -0
- data/features/bin/quoter +6 -0
- data/features/bin/sorter +4 -0
- data/features/example_articles/bracketing.rb +27 -0
- data/features/example_articles/escaping.txt +13 -0
- data/features/example_articles/excerpt_output.rb +16 -0
- data/features/example_articles/hello.rb +9 -0
- data/features/example_articles/pipelines.txt +25 -0
- data/features/example_articles/regexen.rb +24 -0
- data/features/example_articles/sample_offsets.rb +18 -0
- data/features/example_articles/specials.rb +19 -0
- data/features/example_articles/stderr.rb +10 -0
- data/features/example_articles/wrapping.rb +8 -0
- data/features/example_output/bracketing.out +23 -0
- data/features/example_output/code_samples.txt +186 -0
- data/features/example_output/escaping.out +5 -0
- data/features/example_output/excerpt_output.out +6 -0
- data/features/example_output/hello.txt +1 -0
- data/features/example_output/pipelines.out +28 -0
- data/features/example_output/regexen.txt +22 -0
- data/features/example_output/sample_offsets.txt +15 -0
- data/features/example_output/specials.txt +40 -0
- data/features/example_output/stderr.out +3 -0
- data/features/example_output/wrapping.txt +3 -0
- data/features/step_definitions/germinate.rb +42 -0
- data/features/support/env.rb +20 -0
- data/germinate.gemspec +55 -0
- data/lib/germinate.rb +54 -0
- data/lib/germinate/application.rb +113 -0
- data/lib/germinate/article_editor.rb +20 -0
- data/lib/germinate/formatter.rb +119 -0
- data/lib/germinate/hunk.rb +183 -0
- data/lib/germinate/implicit_insertion.rb +9 -0
- data/lib/germinate/insertion.rb +29 -0
- data/lib/germinate/librarian.rb +293 -0
- data/lib/germinate/origin.rb +5 -0
- data/lib/germinate/pipeline.rb +13 -0
- data/lib/germinate/publisher.rb +57 -0
- data/lib/germinate/reader.rb +266 -0
- data/lib/germinate/selector.rb +136 -0
- data/lib/germinate/shared_style_attributes.rb +54 -0
- data/lib/germinate/shell_process.rb +94 -0
- data/lib/germinate/shell_publisher.rb +19 -0
- data/lib/germinate/simple_publisher.rb +7 -0
- data/lib/germinate/source_file.rb +41 -0
- data/lib/germinate/text_transforms.rb +119 -0
- data/lib/germinate/transform_process.rb +25 -0
- data/lib/germinate/variable.rb +23 -0
- data/sample.rb +14 -0
- data/spec/germinate/application_spec.rb +31 -0
- data/spec/germinate/article_editor_spec.rb +97 -0
- data/spec/germinate/code_hunk_spec.rb +73 -0
- data/spec/germinate/file_hunk_spec.rb +28 -0
- data/spec/germinate/formatter_spec.rb +160 -0
- data/spec/germinate/hunk_spec.rb +84 -0
- data/spec/germinate/implicit_insertion_spec.rb +33 -0
- data/spec/germinate/insertion_spec.rb +19 -0
- data/spec/germinate/librarian_spec.rb +555 -0
- data/spec/germinate/pipeline_spec.rb +34 -0
- data/spec/germinate/process_spec.rb +105 -0
- data/spec/germinate/publisher_spec.rb +130 -0
- data/spec/germinate/reader_spec.rb +385 -0
- data/spec/germinate/selector_spec.rb +121 -0
- data/spec/germinate/shell_publisher_spec.rb +61 -0
- data/spec/germinate/source_file_spec.rb +99 -0
- data/spec/germinate/text_hunk_spec.rb +98 -0
- data/spec/germinate/text_transforms_spec.rb +242 -0
- data/spec/germinate/transform_process_spec.rb +50 -0
- data/spec/germinate/variable_spec.rb +14 -0
- data/spec/germinate_spec.rb +8 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +16 -0
- data/tasks/ann.rake +80 -0
- data/tasks/bones.rake +20 -0
- data/tasks/cucumber.rake +5 -0
- data/tasks/gem.rake +201 -0
- data/tasks/git.rake +40 -0
- data/tasks/notes.rake +27 -0
- data/tasks/post_load.rake +34 -0
- data/tasks/rdoc.rake +51 -0
- data/tasks/rubyforge.rake +55 -0
- data/tasks/setup.rb +292 -0
- data/tasks/spec.rake +54 -0
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/tasks/zentest.rake +36 -0
- data/test/test_germinate.rb +0 -0
- metadata +228 -0
data/cucumber.yml
ADDED
data/examples/basic.rb
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
# :PUBLISHER: source, gist
|
2
|
+
# A basic example of a Germinate article.
|
3
|
+
#
|
4
|
+
# This text is "front matter" and will not be included in the final article.
|
5
|
+
# The article doesn't begin until the first text directive.
|
6
|
+
#
|
7
|
+
# Let's set up code bracketing so that code excerpts will be surrounded by HTML
|
8
|
+
# <pre>...</pre> tags.
|
9
|
+
#
|
10
|
+
# :BRACKET_CODE: <pre>, </pre>
|
11
|
+
#
|
12
|
+
# :TEXT:
|
13
|
+
# This is the first line of the article text. For the formatted article,
|
14
|
+
# Germinate will remove the comment prefixes ("# ") and join paragraphs into
|
15
|
+
# single lines.
|
16
|
+
#
|
17
|
+
# We're coming up on our first code section. If some code immediately follows a
|
18
|
+
# text section it will automatically be inserted into the formatted article
|
19
|
+
# text.
|
20
|
+
def my_func
|
21
|
+
# ...
|
22
|
+
end
|
23
|
+
# :END:
|
24
|
+
#
|
25
|
+
# The END directive above ends that particular code sample. This text will not
|
26
|
+
# be included in the final article.
|
27
|
+
#
|
28
|
+
# We don't want to have to write our source code in the order it appears in
|
29
|
+
# the article. Let's define a named code sample.
|
30
|
+
#
|
31
|
+
# :SAMPLE: hello
|
32
|
+
def hello
|
33
|
+
puts "Hello, #{ARGV[0]}"
|
34
|
+
end
|
35
|
+
hello
|
36
|
+
|
37
|
+
# :TEXT:
|
38
|
+
# We're back in the article text now. Let's insert our named sample now.
|
39
|
+
# :INSERT: @hello
|
40
|
+
#
|
41
|
+
# Now lets define some processes and experiment with running the sample through
|
42
|
+
# them.
|
43
|
+
#
|
44
|
+
# :PROCESS: fred, "ruby %f Fred"
|
45
|
+
# :PROCESS: jane, "ruby %f Jane"
|
46
|
+
# :PROCESS: quote, "ruby -n -e 'puts \"> #{$_}\"'"
|
47
|
+
#
|
48
|
+
# Note that the "quote" process has no %f placeholder for the filename.
|
49
|
+
# If it doesn't find a %f, Germinate will pipe the source sample into the
|
50
|
+
# command on its STDIN.
|
51
|
+
#
|
52
|
+
# Here's the result of :INSERT: @hello|fred
|
53
|
+
# :INSERT: @hello|fred
|
54
|
+
#
|
55
|
+
# Here's the result of :INSERT: @hello|jane
|
56
|
+
# :INSERT: @hello|jane
|
57
|
+
#
|
58
|
+
# We can even chain processes together. Here's the result of
|
59
|
+
# :INSERT: @hello|jane|quote
|
60
|
+
# :INSERT: @hello|jane|quote
|
61
|
+
#
|
62
|
+
# It's not necessary to quote whole code samples. We can select specific lines
|
63
|
+
# to excerpt using more advanced selectors.
|
64
|
+
#
|
65
|
+
# Select a single line
|
66
|
+
# :INSERT: @foo:2
|
67
|
+
# :INSERT: @foo:2
|
68
|
+
#
|
69
|
+
# Select an inclusive range
|
70
|
+
# :INSERT: @foo:2..4
|
71
|
+
# :INSERT: @foo:2..4
|
72
|
+
#
|
73
|
+
# Select an exclusive range
|
74
|
+
# :INSERT: @foo:1...3
|
75
|
+
# :INSERT: @foo:1...3
|
76
|
+
#
|
77
|
+
# Select by starting line and length
|
78
|
+
# :INSERT: @foo:4,4
|
79
|
+
# :INSERT: @foo:4,4
|
80
|
+
#
|
81
|
+
# Select by starting and ending regular expressions
|
82
|
+
# :INSERT: @foo:/do_stuff/../end/
|
83
|
+
# :INSERT: @foo:/do_stuff/../end/
|
84
|
+
#
|
85
|
+
# Select by regex and length
|
86
|
+
# :INSERT: @foo:/attr_reader/,3
|
87
|
+
# :INSERT: @foo:/attr_reader/,3
|
88
|
+
#
|
89
|
+
# :SAMPLE: foo
|
90
|
+
class Foo
|
91
|
+
attr_reader :bar
|
92
|
+
attr_reader :baz
|
93
|
+
attr_reader :buz
|
94
|
+
|
95
|
+
def do_stuff
|
96
|
+
# ...
|
97
|
+
end
|
98
|
+
end
|
99
|
+
# :END:
|
100
|
+
|
101
|
+
# :TEXT:
|
102
|
+
# Finally, we can include all of the code samples in a single chunk with
|
103
|
+
# :INSERT: $CODE
|
104
|
+
# :INSERT: $CODE
|
105
|
+
#
|
106
|
+
# There are some other special section names, such as $SOURCE and $TEXT. See
|
107
|
+
# the Germinate documentation for more.
|
108
|
+
#
|
109
|
+
# :CUT:
|
110
|
+
#
|
111
|
+
# You can format this article for publishing by running:
|
112
|
+
#
|
113
|
+
# germ format <filename>
|
114
|
+
#
|
115
|
+
# If you want to experiment with the selector syntax, try:
|
116
|
+
#
|
117
|
+
# germ select -s <selector>
|
118
|
+
#
|
119
|
+
# Enjoy!
|
120
|
+
#
|
121
|
+
# 1 2 3 5 6 7 8
|
122
|
+
|
123
|
+
# :SET: 'GIST_ID', '150391'
|
data/examples/short.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# #!/usr/bin/env ruby
|
2
|
+
# :PUBLISHER: source, gist
|
3
|
+
# :BRACKET_CODE: <pre>, </pre>
|
4
|
+
# :PROCESS: ruby, "ruby %f"
|
5
|
+
|
6
|
+
# :SAMPLE: hello
|
7
|
+
def hello(who)
|
8
|
+
puts "Hello, #{who}"
|
9
|
+
end
|
10
|
+
|
11
|
+
hello("World")
|
12
|
+
|
13
|
+
# :TEXT:
|
14
|
+
# Check out my amazing program! Here's the hello method:
|
15
|
+
# :INSERT: @hello:/def/../end/
|
16
|
+
|
17
|
+
# And here's the output:
|
18
|
+
# :INSERT: @hello|ruby
|
19
|
+
# :SET: 'GIST_ID', '150868'
|
@@ -0,0 +1,111 @@
|
|
1
|
+
Feature: author formats article
|
2
|
+
|
3
|
+
As an author
|
4
|
+
I want to format my articles
|
5
|
+
So that they can be published
|
6
|
+
|
7
|
+
Scenario: format text followed by code
|
8
|
+
Given an article with the contents:
|
9
|
+
"""
|
10
|
+
# :TEXT:
|
11
|
+
# This is my article
|
12
|
+
|
13
|
+
this is my code
|
14
|
+
"""
|
15
|
+
When I run the format command on the article
|
16
|
+
Then the output should be as follows:
|
17
|
+
"""
|
18
|
+
This is my article
|
19
|
+
|
20
|
+
this is my code
|
21
|
+
"""
|
22
|
+
|
23
|
+
Scenario: format code with bracketing
|
24
|
+
Given an article with the contents:
|
25
|
+
"""
|
26
|
+
# :BRACKET_CODE: "<pre>", "</pre>"
|
27
|
+
# :TEXT:
|
28
|
+
# This is my article
|
29
|
+
|
30
|
+
this is my code
|
31
|
+
"""
|
32
|
+
When I run the format command on the article
|
33
|
+
Then the output should be as follows:
|
34
|
+
"""
|
35
|
+
This is my article
|
36
|
+
|
37
|
+
<pre>
|
38
|
+
this is my code
|
39
|
+
</pre>
|
40
|
+
"""
|
41
|
+
|
42
|
+
Scenario: override default bracketing
|
43
|
+
Given an article with the contents:
|
44
|
+
"""
|
45
|
+
# :BRACKET_CODE: "<pre>", "</pre>"
|
46
|
+
# :TEXT: SECTION1
|
47
|
+
# This is my article
|
48
|
+
|
49
|
+
# :SAMPLE: SECTION1, { brackets: [ '[code]', '[/code]' ] }
|
50
|
+
this is my code
|
51
|
+
"""
|
52
|
+
When I run the format command on the article
|
53
|
+
Then the output should be as follows:
|
54
|
+
"""
|
55
|
+
This is my article
|
56
|
+
|
57
|
+
[code]
|
58
|
+
this is my code
|
59
|
+
[/code]
|
60
|
+
"""
|
61
|
+
|
62
|
+
Scenario: insert a named section
|
63
|
+
Given an article with the contents:
|
64
|
+
"""
|
65
|
+
# :BRACKET_CODE: "<pre>", "</pre>"
|
66
|
+
|
67
|
+
# :SAMPLE: sample1
|
68
|
+
code sample 1
|
69
|
+
|
70
|
+
# :SAMPLE: sample2
|
71
|
+
code sample 2
|
72
|
+
|
73
|
+
# :TEXT:
|
74
|
+
# Here is example 2:
|
75
|
+
# :INSERT: @sample2
|
76
|
+
#
|
77
|
+
# And here is example 1:
|
78
|
+
# :INSERT: @sample1
|
79
|
+
"""
|
80
|
+
When I run the format command on the article
|
81
|
+
Then the output should be as follows:
|
82
|
+
"""
|
83
|
+
Here is example 2:
|
84
|
+
<pre>
|
85
|
+
code sample 2
|
86
|
+
</pre>
|
87
|
+
|
88
|
+
And here is example 1:
|
89
|
+
<pre>
|
90
|
+
code sample 1
|
91
|
+
</pre>
|
92
|
+
"""
|
93
|
+
|
94
|
+
Scenario Outline: more formatting examples
|
95
|
+
Given the article "<input_file>"
|
96
|
+
When I run the format command on the article
|
97
|
+
Then the output should look like "<output_file>"
|
98
|
+
|
99
|
+
Scenarios:
|
100
|
+
| input_file | output_file |
|
101
|
+
| hello.rb | hello.txt |
|
102
|
+
| wrapping.rb | wrapping.txt |
|
103
|
+
| sample_offsets.rb | sample_offsets.txt |
|
104
|
+
| specials.rb | specials.txt |
|
105
|
+
| regexen.rb | regexen.txt |
|
106
|
+
| pipelines.txt | pipelines.out |
|
107
|
+
| escaping.txt | escaping.out |
|
108
|
+
| bracketing.rb | bracketing.out |
|
109
|
+
| stderr.rb | stderr.out |
|
110
|
+
| excerpt_output.rb | excerpt_output.out |
|
111
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
Note: this is a debug feature and its not worth specifying until it gets a bit
|
2
|
+
more stable.
|
3
|
+
Feature: author lists information
|
4
|
+
|
5
|
+
As an author
|
6
|
+
I want to list the various components of my article
|
7
|
+
So that I can diagnose errors in output
|
8
|
+
|
9
|
+
Scenario: list stuff
|
10
|
+
Given an article with the contents:
|
11
|
+
"""
|
12
|
+
# :TEXT:
|
13
|
+
# Anonymous section 1
|
14
|
+
|
15
|
+
anonymous code 1
|
16
|
+
# :END:
|
17
|
+
|
18
|
+
anonymous code 2
|
19
|
+
|
20
|
+
# :TEXT: A
|
21
|
+
# Section A
|
22
|
+
|
23
|
+
# :SAMPLE: X
|
24
|
+
code sample X
|
25
|
+
|
26
|
+
# :PROCESS: frob, "aaa"
|
27
|
+
# :PROCESS: munge, "bbb"
|
28
|
+
"""
|
29
|
+
When I run the command "germ list --sections" on the article
|
30
|
+
Then the output should be as follows:
|
31
|
+
"""
|
32
|
+
SECTION1
|
33
|
+
A
|
34
|
+
"""
|
35
|
+
When I run the command "germ list --samples" on the article
|
36
|
+
Then the output should be as follows:
|
37
|
+
"""
|
38
|
+
SECTION1
|
39
|
+
SECTION2
|
40
|
+
X
|
41
|
+
"""
|
42
|
+
When I run the command "germ list --processes" on the article
|
43
|
+
Then the output should be as follows:
|
44
|
+
"""
|
45
|
+
frob
|
46
|
+
_transform
|
47
|
+
munge
|
48
|
+
"""
|
@@ -0,0 +1,57 @@
|
|
1
|
+
Feature: author publishes article
|
2
|
+
|
3
|
+
As an author
|
4
|
+
I want to publish my article as a blog post
|
5
|
+
So that the world can see it
|
6
|
+
|
7
|
+
Scenario: using a shell publisher
|
8
|
+
Given an article with the contents:
|
9
|
+
"""
|
10
|
+
# :PUBLISHER: source, shell, { command: "quoter %f", select: '$SOURCE' }
|
11
|
+
# :BRACKET_CODE: "<pre>", "</pre>"
|
12
|
+
# :TEXT:
|
13
|
+
# This is the text
|
14
|
+
# :SAMPLE:
|
15
|
+
def hello
|
16
|
+
# ...
|
17
|
+
end
|
18
|
+
"""
|
19
|
+
When I run the command "germ publish source --debug " on the article
|
20
|
+
Then the output should be as follows:
|
21
|
+
"""
|
22
|
+
> # :PUBLISHER: source, shell, { command: "quoter %f", select: '$SOURCE' }
|
23
|
+
> # :BRACKET_CODE: "<pre>", "</pre>"
|
24
|
+
> # :TEXT:
|
25
|
+
> # This is the text
|
26
|
+
> # :SAMPLE:
|
27
|
+
> def hello
|
28
|
+
> # ...
|
29
|
+
> end
|
30
|
+
"""
|
31
|
+
|
32
|
+
Scenario: using a shell publisher with a pipeline
|
33
|
+
Given an article with the contents:
|
34
|
+
"""
|
35
|
+
# :PROCESS: quote, "quoter %f"
|
36
|
+
# :PUBLISHER: source, shell, { command: "quoter %f", pipeline: quote, select: '$SOURCE' }
|
37
|
+
# :BRACKET_CODE: "<pre>", "</pre>"
|
38
|
+
# :TEXT:
|
39
|
+
# This is the text
|
40
|
+
# :SAMPLE:
|
41
|
+
def hello
|
42
|
+
# ...
|
43
|
+
end
|
44
|
+
"""
|
45
|
+
When I run the command "germ publish source --debug " on the article
|
46
|
+
Then the output should be as follows:
|
47
|
+
"""
|
48
|
+
> > # :PROCESS: quote, "quoter %f"
|
49
|
+
> > # :PUBLISHER: source, shell, { command: "quoter %f", pipeline: quote, select: '$SOURCE' }
|
50
|
+
> > # :BRACKET_CODE: "<pre>", "</pre>"
|
51
|
+
> > # :TEXT:
|
52
|
+
> > # This is the text
|
53
|
+
> > # :SAMPLE:
|
54
|
+
> > def hello
|
55
|
+
> > # ...
|
56
|
+
> > end
|
57
|
+
"""
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: author experiments with selectors
|
2
|
+
|
3
|
+
As an author
|
4
|
+
I want to test the behavior of various selectors
|
5
|
+
So that I know what to use in my article
|
6
|
+
|
7
|
+
Scenario: list stuff
|
8
|
+
Given an article with the contents:
|
9
|
+
"""
|
10
|
+
# :TEXT: A
|
11
|
+
# Section A
|
12
|
+
|
13
|
+
# :SAMPLE: X
|
14
|
+
X 1
|
15
|
+
X 2
|
16
|
+
X 3
|
17
|
+
X 4
|
18
|
+
|
19
|
+
# :PROCESS: quote, "quoter %f"
|
20
|
+
"""
|
21
|
+
When I run the command "germ select '@X:2..3|quote'" on the article
|
22
|
+
Then the output should be as follows:
|
23
|
+
"""
|
24
|
+
> X 2
|
25
|
+
> X 3
|
26
|
+
"""
|
@@ -0,0 +1,88 @@
|
|
1
|
+
Feature: author sets variables
|
2
|
+
|
3
|
+
As an author
|
4
|
+
I want to set named values in my article
|
5
|
+
So that I can re-use them in processes, etc.
|
6
|
+
|
7
|
+
Scenario: setting a new variable
|
8
|
+
Given an article with the contents:
|
9
|
+
"""
|
10
|
+
# :TEXT:
|
11
|
+
# This is some text
|
12
|
+
# :SET: FOO, 123
|
13
|
+
"""
|
14
|
+
When I run the command "germ list variables --debug" on the article
|
15
|
+
Then the output should be as follows:
|
16
|
+
"""
|
17
|
+
FOO 123
|
18
|
+
"""
|
19
|
+
When I run the command "germ set MAGIC_WORD xyzzy --debug" on the article
|
20
|
+
Then the article contents should be:
|
21
|
+
"""
|
22
|
+
# :TEXT:
|
23
|
+
# This is some text
|
24
|
+
# :SET: FOO, 123
|
25
|
+
# :SET: 'MAGIC_WORD', 'xyzzy'
|
26
|
+
|
27
|
+
"""
|
28
|
+
And the article backup contents should be:
|
29
|
+
"""
|
30
|
+
# :TEXT:
|
31
|
+
# This is some text
|
32
|
+
# :SET: FOO, 123
|
33
|
+
"""
|
34
|
+
When I run the command "germ list variables --debug" on the article
|
35
|
+
Then the output should be as follows:
|
36
|
+
"""
|
37
|
+
FOO 123
|
38
|
+
MAGIC_WORD xyzzy
|
39
|
+
"""
|
40
|
+
|
41
|
+
Scenario: changing an existing variable
|
42
|
+
Given an article with the contents:
|
43
|
+
"""
|
44
|
+
# :PUBLISHER: env, shell, { command: 'echo %f > /dev/null; echo $FOO' }
|
45
|
+
# :TEXT:
|
46
|
+
# This is some text
|
47
|
+
# :SET: FOO, 123
|
48
|
+
# This is more text
|
49
|
+
"""
|
50
|
+
When I run the command "germ list variables --debug" on the article
|
51
|
+
Then the output should be as follows:
|
52
|
+
"""
|
53
|
+
FOO 123
|
54
|
+
"""
|
55
|
+
When I run the command "germ publish env --debug" on the article
|
56
|
+
Then the output should be as follows:
|
57
|
+
"""
|
58
|
+
123
|
59
|
+
"""
|
60
|
+
When I run the command "germ set FOO 456 --debug" on the article
|
61
|
+
Then the article contents should be:
|
62
|
+
"""
|
63
|
+
# :PUBLISHER: env, shell, { command: 'echo %f > /dev/null; echo $FOO' }
|
64
|
+
# :TEXT:
|
65
|
+
# This is some text
|
66
|
+
# :SET: 'FOO', '456'
|
67
|
+
# This is more text
|
68
|
+
|
69
|
+
"""
|
70
|
+
And the article backup contents should be:
|
71
|
+
"""
|
72
|
+
# :PUBLISHER: env, shell, { command: 'echo %f > /dev/null; echo $FOO' }
|
73
|
+
# :TEXT:
|
74
|
+
# This is some text
|
75
|
+
# :SET: FOO, 123
|
76
|
+
# This is more text
|
77
|
+
|
78
|
+
"""
|
79
|
+
When I run the command "germ list variables --debug" on the article
|
80
|
+
Then the output should be as follows:
|
81
|
+
"""
|
82
|
+
FOO 456
|
83
|
+
"""
|
84
|
+
When I run the command "germ publish env --debug" on the article
|
85
|
+
Then the output should be as follows:
|
86
|
+
"""
|
87
|
+
456
|
88
|
+
"""
|