Skip to content

Commit f81ddaf

Browse files
committed
Update plugin example
1 parent e9c114e commit f81ddaf

File tree

4 files changed

+24
-36
lines changed

4 files changed

+24
-36
lines changed

src/wwwroot/gfm/api-reference/03.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111

1212
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptMethods</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptMethods</span>());
1313

14-
<span class="pl-smi">ScriptConfig</span>.<span class="pl-smi">DontEvaluateBlocksNamed</span>.<span class="pl-en">Add</span>(<span class="pl-s"><span class="pl-pds">"</span>markdown<span class="pl-pds">"</span></span>);
15-
1614
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptBlocks</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptBlock</span>());
1715
}
1816
}</pre></div>

src/wwwroot/gfm/api-reference/03.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ public class MarkdownScriptPlugin : IScriptPlugin
1212

1313
context.ScriptMethods.Add(new MarkdownScriptMethods());
1414

15-
ScriptConfig.DontEvaluateBlocksNamed.Add("markdown");
16-
1715
context.ScriptBlocks.Add(new MarkdownScriptBlock());
1816
}
1917
}

src/wwwroot/gfm/script-plugins/01.html

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@
2222

2323
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptMethods</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptMethods</span>());
2424

25-
<span class="pl-smi">ScriptConfig</span>.<span class="pl-smi">DontEvaluateBlocksNamed</span>.<span class="pl-en">Add</span>(<span class="pl-s"><span class="pl-pds">"</span>markdown<span class="pl-pds">"</span></span>);
26-
2725
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptBlocks</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptBlock</span>());
2826
}
2927
}</pre></div>
3028
<h3>
31-
<a id="user-content-creating-plugins" class="anchor" href="#creating-plugins" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Creating Plugins</h3>
29+
<a id="creating-plugins" class="anchor" href="#creating-plugins" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Creating Plugins</h3>
3230
<p>Plugin are simply classes that implement <code>IScriptPlugin</code> interface and its <code>Register()</code> method to extend the <code>ScriptContext</code>
3331
with additional functionality we want to make available:</p>
3432
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">interface</span> <span class="pl-en">IScriptPlugin</span>
@@ -48,7 +46,7 @@ <h3>
4846
<span class="pl-k">void</span> <span class="pl-en">AfterPluginsLoaded</span>(<span class="pl-en">ScriptContext</span> <span class="pl-smi">context</span>);
4947
}</pre></div>
5048
<h2>
51-
<a id="user-content-pre-registered-plugins-in-scriptcontext" class="anchor" href="#pre-registered-plugins-in-scriptcontext" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Pre-registered Plugins in <code>ScriptContext</code>
49+
<a id="pre-registered-plugins-in-scriptcontext" class="anchor" href="#pre-registered-plugins-in-scriptcontext" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Pre-registered Plugins in <code>ScriptContext</code>
5250
</h2>
5351
<p>Pre-registered plugins are useful when you want to easily <strong>remove</strong> a pre-registered suite of functionality, e.g:</p>
5452
<div class="highlight highlight-source-cs"><pre><span class="pl-k">var</span> <span class="pl-smi">context</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">ScriptContext</span> {
@@ -58,7 +56,7 @@ <h2>
5856
.<span class="pl-en">RemovePlugins</span>(<span class="pl-smi">x</span> <span class="pl-k">=&gt;</span> <span class="pl-smi">x</span> <span class="pl-k">is</span> <span class="pl-en">HtmlScriptBlocks</span>) <span class="pl-c"><span class="pl-c">//</span> Remove all html blocks</span>
5957
.<span class="pl-en">Init</span>();</pre></div>
6058
<h3>
61-
<a id="user-content-defaultscriptblocks" class="anchor" href="#defaultscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>DefaultScriptBlocks</h3>
59+
<a id="defaultscriptblocks" class="anchor" href="#defaultscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>DefaultScriptBlocks</h3>
6260
<p>The Default <a href="/docs/blocks">Script Blocks</a> contain all the <strong>statement</strong> functionality in <code>#Script</code> which includes:</p>
6361
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-en">DefaultScriptBlocks</span> : <span class="pl-en">IScriptPlugin</span>
6462
{
@@ -80,7 +78,7 @@ <h3>
8078
}
8179
}</pre></div>
8280
<h3>
83-
<a id="user-content-htmlscriptblocks" class="anchor" href="#htmlscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>HtmlScriptBlocks</h3>
81+
<a id="htmlscriptblocks" class="anchor" href="#htmlscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>HtmlScriptBlocks</h3>
8482
<p>The purpose of the <a href="/docs/blocks#html">HTML Script Blocks</a> is to pack a suite of generically useful functionality commonly used when generating html.
8583
All html blocks inherit the same functionality with blocks registered for the most popular HTML elements, currently:</p>
8684
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-en">HtmlScriptBlocks</span> : <span class="pl-en">IScriptPlugin</span>
@@ -127,12 +125,12 @@ <h3>
127125
}
128126
}</pre></div>
129127
<h2>
130-
<a id="user-content-pre-registered-plugins-in-sharppagesfeature" class="anchor" href="#pre-registered-plugins-in-sharppagesfeature" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Pre-registered Plugins in <code>SharpPagesFeature</code>
128+
<a id="pre-registered-plugins-in-sharppagesfeature" class="anchor" href="#pre-registered-plugins-in-sharppagesfeature" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Pre-registered Plugins in <code>SharpPagesFeature</code>
131129
</h2>
132130
<p>The <a href="/docs/sharp-pages">SharpPagesFeature</a> in <code>ServiceStack.dll</code> has access to more dependencies than <code>ScriptContext</code> and
133131
is able to pre-register more functionality by default including:</p>
134132
<h3>
135-
<a id="user-content-servicestackscriptblocks" class="anchor" href="#servicestackscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>ServiceStackScriptBlocks</h3>
133+
<a id="servicestackscriptblocks" class="anchor" href="#servicestackscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>ServiceStackScriptBlocks</h3>
136134
<p>Containing the <code>{{#minifyjs}}{{/minifyjs}}</code>, <code>{{#minifycss}}{{/minifycss}}</code> and <code>{{#minifyhtml}}{{/minifyhtml}}</code> for minifying
137135
its contents:</p>
138136
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-en">ServiceStackScriptBlocks</span> : <span class="pl-en">IScriptPlugin</span>
@@ -148,7 +146,7 @@ <h3>
148146
}
149147
}</pre></div>
150148
<h3>
151-
<a id="user-content-markdownscriptplugin" class="anchor" href="#markdownscriptplugin" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>MarkdownScriptPlugin</h3>
149+
<a id="markdownscriptplugin" class="anchor" href="#markdownscriptplugin" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>MarkdownScriptPlugin</h3>
152150
<p>Adds Markdown supports to <a href="/docs/sharp-pages">#Script Pages</a> by default:</p>
153151
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-en">MarkdownScriptPlugin</span> : <span class="pl-en">IScriptPlugin</span>
154152
{
@@ -163,18 +161,16 @@ <h3>
163161

164162
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptMethods</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptMethods</span>());
165163

166-
<span class="pl-smi">ScriptConfig</span>.<span class="pl-smi">DontEvaluateBlocksNamed</span>.<span class="pl-en">Add</span>(<span class="pl-s"><span class="pl-pds">"</span>markdown<span class="pl-pds">"</span></span>);
167-
168164
<span class="pl-smi">context</span>.<span class="pl-smi">ScriptBlocks</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptBlock</span>());
169165
}
170166
}</pre></div>
171167
<p>Added using:</p>
172168
<div class="highlight highlight-source-cs"><pre><span class="pl-smi">Plugins</span>.<span class="pl-en">Add</span>(<span class="pl-k">new</span> <span class="pl-en">MarkdownScriptPlugin</span> { <span class="pl-smi">RegisterPageFormat</span> <span class="pl-k">=</span> <span class="pl-c1">false</span> });</pre></div>
173169
<h2>
174-
<a id="user-content-available-plugins" class="anchor" href="#available-plugins" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Available Plugins</h2>
170+
<a id="available-plugins" class="anchor" href="#available-plugins" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Available Plugins</h2>
175171
<p>List of available plugins that's not pre-registered anywhere include:</p>
176172
<h3>
177-
<a id="user-content-protectedscriptblocks" class="anchor" href="#protectedscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>ProtectedScriptBlocks</h3>
173+
<a id="protectedscriptblocks" class="anchor" href="#protectedscriptblocks" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>ProtectedScriptBlocks</h3>
178174
<div class="highlight highlight-source-cs"><pre><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-en">ProtectedScriptBlocks</span> : <span class="pl-en">IScriptPlugin</span>
179175
{
180176
<span class="pl-k">public</span> <span class="pl-k">void</span> <span class="pl-en">Register</span>(<span class="pl-en">ScriptContext</span> <span class="pl-smi">context</span>)
@@ -186,32 +182,32 @@ <h3>
186182
}</pre></div>
187183
<p>Although generally not required as <a href="/docs/default-scripts#evalTemplate">evalTemplate script method</a> registered by default has equivalent functionality.</p>
188184
<h3>
189-
<a id="user-content-githubplugin" class="anchor" href="#githubplugin" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>GitHubPlugin</h3>
185+
<a id="githubplugin" class="anchor" href="#githubplugin" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>GitHubPlugin</h3>
190186
<p>ServiceStack's available GitHub integration can be used in your <code>#Script</code> by adding <code>GitHubPlugin</code> to your <code>ScriptContext</code> or <code>SharpPagesFeature</code>:</p>
191187
<div class="highlight highlight-source-cs"><pre><span class="pl-k">new</span> <span class="pl-smi">ScriptContext</span> {
192188
<span class="pl-smi">Plugins</span> <span class="pl-k">=</span> { <span class="pl-k">new</span> <span class="pl-en">GitHubPlugin</span>() },
193189
}.<span class="pl-en">Init</span>();</pre></div>
194190
<p>This is enabled by default in the <code>web</code> and <code>app</code> dotnet tools so they can be used in <code>#Script</code> <strong>.ss</strong> scripts.</p>
195191
<p>Checkout <a href="https://github.com/ServiceStack/ServiceStack/blob/master/src/ServiceStack.Common/Script/Methods/GitHubScripts.cs">GitHubScripts.cs</a>
196192
for the full API available. Here's <a href="https://developer.github.com/v3/gists/#example">GitHub's Gist API</a> example of creating gists in <code>#Script</code>:</p>
197-
<div class="highlight highlight-source-js"><pre><span class="pl-en">githubGateway</span>(<span class="pl-s"><span class="pl-pds">'</span>GITHUB_GIST_TOKEN<span class="pl-pds">'</span></span>.<span class="pl-en">envVariable</span>()) <span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-smi">to</span> <span class="pl-k">=&gt;</span> gateway
193+
<div class="highlight highlight-source-js"><pre><span class="pl-en">githubGateway</span><span class="pl-kos">(</span><span class="pl-s">'GITHUB_GIST_TOKEN'</span><span class="pl-kos">.</span><span class="pl-en">envVariable</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">)</span> |<span class="pl-c1">&gt;</span> <span class="pl-s1">to</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">gateway</span>
198194

199-
{{ <span class="pl-smi">gateway</span>.<span class="pl-en">githubCreateGist</span>(<span class="pl-s"><span class="pl-pds">'</span>Hello World Examples<span class="pl-pds">'</span></span>, {
200-
<span class="pl-s"><span class="pl-pds">'</span>hello_world_ruby.txt<span class="pl-pds">'</span></span><span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>Run `ruby hello_world.rb` to print Hello World<span class="pl-pds">'</span></span>,
201-
<span class="pl-s"><span class="pl-pds">'</span>hello_world_python.txt<span class="pl-pds">'</span></span><span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>Run `python hello_world.py` to print Hello World<span class="pl-pds">'</span></span>,
202-
})
203-
<span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-smi">to</span> <span class="pl-k">=&gt;</span> newGist }}
195+
<span class="pl-kos">{</span><span class="pl-kos">{</span> <span class="pl-s1">gateway</span><span class="pl-kos">.</span><span class="pl-en">githubCreateGist</span><span class="pl-kos">(</span><span class="pl-s">'Hello World Examples'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span>
196+
<span class="pl-s">'hello_world_ruby.txt'</span>: <span class="pl-s">'Run `ruby hello_world.rb` to print Hello World'</span><span class="pl-kos">,</span>
197+
<span class="pl-s">'hello_world_python.txt'</span>: <span class="pl-s">'Run `python hello_world.py` to print Hello World'</span><span class="pl-kos">,</span>
198+
<span class="pl-kos">}</span><span class="pl-kos">)</span>
199+
|<span class="pl-c1">&gt;</span> <span class="pl-s1">to</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">newGist</span> <span class="pl-kos">}</span><span class="pl-kos">}</span>
204200

205-
{ <span class="pl-k">...</span>newGist, Files<span class="pl-k">:</span> <span class="pl-c1">null</span>, Owner<span class="pl-k">:</span> <span class="pl-c1">null</span> } <span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-en">textDump</span>({ caption<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>new gist<span class="pl-pds">'</span></span> })</pre></div>
201+
<span class="pl-kos">{</span> ...<span class="pl-s1">newGist</span><span class="pl-kos">,</span> <span class="pl-c1">Files</span>: <span class="pl-c1">null</span><span class="pl-kos">,</span> <span class="pl-c1">Owner</span>: <span class="pl-c1">null</span> <span class="pl-kos">}</span> |<span class="pl-c1">&gt;</span> <span class="pl-en">textDump</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">caption</span>: <span class="pl-s">'new gist'</span> <span class="pl-kos">}</span><span class="pl-kos">)</span></pre></div>
206202
<p>View Gist files and metadata example:</p>
207-
<div class="highlight highlight-source-js"><pre><span class="pl-smi">gateway</span>.<span class="pl-en">githubGist</span>(gistId) <span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-smi">to</span> <span class="pl-k">=&gt;</span> gist
203+
<div class="highlight highlight-source-js"><pre><span class="pl-s1">gateway</span><span class="pl-kos">.</span><span class="pl-en">githubGist</span><span class="pl-kos">(</span><span class="pl-s1">gistId</span><span class="pl-kos">)</span> |<span class="pl-c1">&gt;</span> <span class="pl-s1">to</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">gist</span>
208204

209-
{ <span class="pl-k">...</span>gist, Files<span class="pl-k">:</span> <span class="pl-c1">null</span>, Owner<span class="pl-k">:</span> <span class="pl-c1">null</span> } <span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-en">textDump</span>({ caption<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>gist<span class="pl-pds">'</span></span> })
205+
<span class="pl-kos">{</span> ...<span class="pl-s1">gist</span><span class="pl-kos">,</span> <span class="pl-c1">Files</span>: <span class="pl-c1">null</span><span class="pl-kos">,</span> <span class="pl-c1">Owner</span>: <span class="pl-c1">null</span> <span class="pl-kos">}</span> |<span class="pl-s1"></span><span class="pl-c1">&gt;</span> <span class="pl-en">textDump</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">caption</span>: <span class="pl-s">'gist'</span> <span class="pl-kos">}</span><span class="pl-kos">)</span>
210206

211-
<span class="pl-s"><span class="pl-pds">`</span>#### Gist Files<span class="pl-pds">`</span></span>
212-
#each file <span class="pl-k">in</span> <span class="pl-smi">gist</span>.<span class="pl-smi">Files</span>.<span class="pl-smi">Keys</span>
213-
<span class="pl-smi">gist</span>.<span class="pl-smi">Files</span>[file] <span class="pl-k">|</span><span class="pl-k">&gt;</span> <span class="pl-en">textDump</span>({ caption<span class="pl-k">:</span> file })
214-
<span class="pl-k">/</span>each</pre></div>
207+
<span class="pl-s">`#### Gist Files`</span>
208+
#<span class="pl-s1">each</span> <span class="pl-s1">file</span> <span class="pl-k">in</span> <span class="pl-s1">gist</span><span class="pl-kos">.</span><span class="pl-c1">Files</span><span class="pl-kos">.</span><span class="pl-c1">Keys</span>
209+
<span class="pl-s1">gist</span><span class="pl-kos">.</span><span class="pl-c1">Files</span><span class="pl-kos">[</span><span class="pl-s1">file</span><span class="pl-kos">]</span> |<span class="pl-c1">&gt;</span> <span class="pl-en">textDump</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">caption</span>: <span class="pl-s1">file</span> <span class="pl-kos">}</span><span class="pl-kos">)</span>
210+
/<span class="pl-s1">each</span></pre></div>
215211
<p>Which renders the following GitHub Flavored Markdown output:</p>
216212
<table>
217213
<thead>
@@ -296,7 +292,7 @@ <h3>
296292
</tbody>
297293
</table>
298294
<h4>
299-
<a id="user-content-gist-files" class="anchor" href="#gist-files" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Gist Files</h4>
295+
<a id="gist-files" class="anchor" href="#gist-files" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Gist Files</h4>
300296
<table>
301297
<thead>
302298
<tr>

src/wwwroot/gfm/script-plugins/01.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ public class MarkdownScriptPlugin : IScriptPlugin
2828

2929
context.ScriptMethods.Add(new MarkdownScriptMethods());
3030

31-
ScriptConfig.DontEvaluateBlocksNamed.Add("markdown");
32-
3331
context.ScriptBlocks.Add(new MarkdownScriptBlock());
3432
}
3533
}
@@ -196,8 +194,6 @@ public class MarkdownScriptPlugin : IScriptPlugin
196194

197195
context.ScriptMethods.Add(new MarkdownScriptMethods());
198196

199-
ScriptConfig.DontEvaluateBlocksNamed.Add("markdown");
200-
201197
context.ScriptBlocks.Add(new MarkdownScriptBlock());
202198
}
203199
}

0 commit comments

Comments
 (0)