-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathsite.yml
256 lines (232 loc) · 11.9 KB
/
site.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
### Generated by Statocles version 0.086
# This is the site configuration file. The format is YAML, and the config is
# read by Beam::Wire, a dependency-injection library that builds complete
# objects. For full details on how to edit this file, see
# Statocles::Help::Config.
#
# This file contains configuration for objects. Each object has a name, like
# "site", "theme", or "blog_app". This name can be used to refer to the object
# later, for example, using "$ref: name".
#
# Every object has a "class". Developers can customize behavior by changing the
# class or creating their own classes. If you need help with an object, look at
# the class's documentation.
#
# Every object has "args", which are the object's attributes. See the class's
# documentation for a full list of attributes and what they do.
#
# Many objects have events. Event handlers can be configured using the "on"
# key. See the class's documentation for a list of possible events. Every
# event handler should have at least "$class" and a "$sub". "$class" is the
# plugin class. "$sub" is the plugin method to run. If necessary, you can
# add "$args" to configure the plugin object.
# site: This is the main site object. Site objects handle building and
# deploying, and store global site data like themes and navigation. See
# Statocles::Site for a full list of attributes and what they do.
site:
class: 'Statocles::Site'
args:
# title: This is the title of the site, shown in the <title> tag
title: 'Minimum Viable Perl'
# base_url: This is the base URL the site will be deployed to. It
# should be a full URL, and may contain a path, like:
#
# http://example.com/username
#
# If the base_url contains a path, all internal links will be
# rewritten appropriately.
base_url: 'http://mvp.kablamo.org'
# apps: These are the applications in this site. The name of the app,
# "blog", "page", or "static", is used to refer to it in commands.
apps:
# blog: This is the blog app
blog:
$ref: 'blog_app'
# page: This app turns any Markdown page into HTML
page:
$ref: 'page_app'
# perldoc:
# $ref: 'perldoc_app'
# static: This app does no processing at all. Good for images
static:
$ref: 'static_app'
# plugins: These are plugins that can add features and alter the
# content of the site.
plugins:
link_check:
$class: 'Statocles::Plugin::LinkCheck'
# theme: The theme builds and manages the templates. Use themes to
# change how your site looks.
theme:
$ref: 'theme'
# index: The path to the page that should be used for the site index.
index: '/page'
# nav: These are lists of navigation links used by the theme.
# Navigations are used to move between applications, or to go to
# specific, important pages.
#
# The "main" nav is the primary navigation for the site. Every theme
# should have this one.
#
# Each nav consists of an array of links. See the Statocles::Link class
# for a list of attributes and what they mean. The most important are
# "text", the text of the link, and "href", the URL to link to.
nav:
main:
- text: 'Blog'
href: '/blog'
data:
toc:
- title: 'Syntax'
number: 1
anchor: 'basics'
articles:
- {number: '1.1', title: 'Hello world', href: '/basics/hello/'}
- {number: '1.2', title: 'Variables', href: '/basics/variables/'}
- {number: '1.3', title: 'References', href: '/basics/references/'}
# - {number: '1.4', title: 'Context', href: '/basics/references/'}
- {number: '1.4', title: 'Functions', href: '/basics/functions/'}
- {number: '1.5', title: 'Conditionals', href: '/basics/flow/'}
- {number: '1.6', title: 'Loops', href: '/basics/loops/'}
- {number: '1.7', title: 'Regular expressions', href: '/basics/regexps/'}
- {number: '1.8', title: 'Files', href: '/basics/files/'}
# - {number: '1.11', title: 'Modules', href: '/basics/modules/'}
# - {number: '1.12', title: 'Comments and POD', href: '/basics/pod/'}
# - {number: '1.13', title: 'Scope', href: '/basics/scope/'}
# - {number: '1.14', title: 'Constants', href: '/basics/constants/'}
# - {number: '1.15', title: 'Perl design goals', href: '/basics/perl/'}
- title: 'Using libraries'
number: 2
anchor: 'dependencies'
articles:
articles:
- {number: '2.1', title: 'Loading libraries and $PERL5LIB', href: '/dependencies/perl5lib/', toc_title: 'Loading libraries ($PERL5LIB)'}
- {number: '2.2', title: 'Installing libraries with cpanm', href: '/dependencies/cpanm/', toc_title: 'Installing libraries (cpanm)'}
- {number: '2.3', title: 'Managing project dependencies with Carton', href: '/dependencies/carton/', toc_title: 'Managing dependencies (Carton)'}
- {number: '2.4', title: 'What version? Where?', href: '/dependencies/pmtools/'}
- title: 'Essential skills'
number: 3
anchor: 'essentials'
articles:
- title: 'Introduction'
number: '3.1'
href: '/essentials/introduction/'
- toc_title: 'Exceptions with die/eval'
number: '3.2'
title: 'Handling exceptions with die/eval'
href: '/essentials/die-eval/'
- toc_title: 'Exceptions with try/catch'
number: '3.3'
title: 'Handling exceptions with try/catch'
href: '/essentials/try-catch/'
# - title: 'File IO with open() and close()'
# toc_title: 'File IO with open/close'
# number: '3.4'
# href: '/essentials/fileio-builtins/'
# - title: 'File IO with OO'
# toc_title: 'File IO with OO'
# number: '3.5'
# href: '/essentials/path-tiny/'
# - {number: '3.6', title: 'Working with lists', href: '/essentials/lists/'}
# - {number: '3.7', title: 'Working with hashes', href: '/essentials/hashes/'}
# - {number: '3.8', title: 'Time and dates', href: '/essentials/datetime/'}
- title: 'Recommended libraries'
number: 4
anchor: 'cpan'
articles:
- {number: '4.1', title: 'Introduction', href: '/cpan/introduction/'}
- {number: '4.2', toc_title: 'Exceptions', href: '/cpan/exceptions/', title: "Handling exceptions"}
- {number: '4.3', toc_title: 'File IO', href: '/cpan/files/', title: "File IO" }
# - {number: '4.1', title: 'JSON', href: '/cpan/json/'}
# - {number: '4.1', title: 'XML', href: '/cpan/xml/'}
# - {number: '4.1', title: 'HTML', href: '/cpan/html/'}
# - {number: '4.1', title: 'Web frameworks', href: '/cpan/web-frameworks/'}
# - {number: '4.1', title: 'Web deployment', href: '/cpan/web-deployment/'}
- title: 'Object oriented programming'
number: 5
anchor: 'oo'
articles:
- {number: '5.1', title: 'The story of Perl OO', href: '/oo/story/'}
- {number: '5.2', title: 'Classes and objects', href: '/oo/classes/'}
- {number: '5.3', title: 'Attributes', href: '/oo/attributes/'}
- {number: '5.4', title: 'Method modifiers', href: '/oo/modifiers/'}
- {number: '5.5', title: 'Roles', href: '/oo/roles/'}
- {number: '5.6', title: 'Inheritance', href: '/oo/inheritance/'}
- title: 'Debugging'
number: 6
anchor: 'debugging'
articles:
- {number: '6.1', title: 'Examining data structures', href: '/debugging/data-printer/'}
- {number: '6.2', title: 'Forcing stack traces', href: '/debugging/stack-trace/'}
- title: 'Testing'
number: 7
anchor: 'testing'
articles:
- {number: '7.1', title: 'Introduction', href: '/testing/intro/'}
- {number: '7.2', title: 'Warnings and exceptions', href: '/testing/warnings/'}
- {number: '7.3', title: 'Data structures', href: '/testing/data/'}
- {number: '7.4', title: 'Mock objects', href: '/testing/mock/'}
- {number: '7.5', title: 'Building your own test libraries', href: '/testing/libs/'}
# deploy: This is the deploy object, used to deploy this site.
deploy:
$ref: 'deploy'
# theme: These are the settings for the theme. See Statocles::Help::Theme for
# more information, and Statocles::Theme for a full list of attributes and what
# they do
theme:
class: 'Statocles::Theme'
args:
# store: The store points to the directory where the theme's
# templates are kept. Under-the-hood, this is a Statocles::Store
# object.
#
# Themes have a special syntax to refer to themes that come bundled with
# Statocles. See Statocles::Help::Theme for more information
store: 'theme'
# deploy: These are the settings for the site's deploy. See Statocles::Deploy::File
# for a full list of attributes and what they do.
deploy:
class: 'Statocles::Deploy::Git'
args:
branch: 'gh-pages'
remote: 'gh-pages'
#----------------------------------------------------------------------------
# Applications
#----------------------------------------------------------------------------
#
# All applications have a "url_root" attribute, which is the root URL of the
# app. All the app's pages will be under this URL.
#
# Most applications have a "store" attribute. The store points to the directory
# where the application's data is kept. Under-the-hood, this is a
# Statocles::Store object, but you only need to specify the directory path.
# blog_app: These are the settings for the blog application.
blog_app:
class: 'Statocles::App::Blog'
args:
url_root: '/blog'
store: 'blog'
# page_app: These are the settings for the page application.
page_app:
class: 'Statocles::App::Basic'
args:
store: 'page'
url_root: '/'
# static_app: These are the settings for the static application.
static_app:
class: 'Statocles::App::Basic'
args:
store: 'static'
url_root: '/'
#perldoc_app:
# class: 'Statocles::App::Perldoc'
# args:
# store: 'page'
# url_root: '/perldoc'
# template_dir: 'perldoc'
# index_module: 'perl'
# modules:
# - 'perlfunc'
# - 'perlvar'
# - 'perlop'
#