├── .bowerrc
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .jshintrc
├── .travis.yml
├── .yo-rc.json
├── Gruntfile.js
├── LICENSE.txt
├── README.adoc
├── app
├── .buildignore
├── .htaccess
├── 404.html
├── docs
│ ├── getting_started.adoc
│ ├── index.adoc
│ ├── support.adoc
│ └── writing.adoc
├── favicon.ico
├── index.html
├── robots.txt
├── scripts
│ ├── app.js
│ ├── controllers
│ │ └── sectionCtrl.js
│ └── services
│ │ ├── asciiDocFactory.js
│ │ ├── asciiDocLoader.js
│ │ └── underscoreFactory.js
├── styles
│ ├── asciidoctor.css
│ └── main.css
└── views
│ ├── documentation.html
│ └── main.html
├── bower.json
├── images
├── asciidocular_asciidoc.png
├── asciidocular_home.png
├── asciidocular_mobile.png
└── asciidocular_section.png
├── package.json
└── test
├── .jshintrc
├── karma.conf.js
└── spec
└── controllers
├── about.js
└── main.js
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "bower_components"
3 | }
4 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 |
8 | [*]
9 |
10 | # Change these settings to your own preference
11 | indent_style = space
12 | indent_size = 2
13 |
14 | # We recommend you to keep these unchanged
15 | end_of_line = lf
16 | charset = utf-8
17 | trim_trailing_whitespace = true
18 | insert_final_newline = true
19 |
20 | [*.md]
21 | trim_trailing_whitespace = false
22 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /dist
3 | /.tmp
4 | /.sass-cache
5 | /bower_components
6 | .idea
7 | /.iml
8 | /.grunt
9 |
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "bitwise": true,
3 | "browser": true,
4 | "curly": true,
5 | "eqeqeq": true,
6 | "esnext": true,
7 | "latedef": true,
8 | "noarg": true,
9 | "node": true,
10 | "strict": true,
11 | "undef": true,
12 | "unused": true,
13 | "globals": {
14 | "angular": false
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - '0.10'
5 | - '0.12'
6 | - 'iojs'
7 | - 'stable'
8 | install:
9 | - npm install -g bower
10 | - npm cache clean
11 | - npm install
12 | - bower install
13 |
--------------------------------------------------------------------------------
/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/Gruntfile.js:
--------------------------------------------------------------------------------
1 | // Generated on 2015-09-18 using generator-angular 0.12.1
2 | 'use strict';
3 |
4 | // # Globbing
5 | // for performance reasons we're only matching one level down:
6 | // 'test/spec/{,*/}*.js'
7 | // use this if you want to recursively match all subfolders:
8 | // 'test/spec/**/*.js'
9 |
10 | module.exports = function (grunt) {
11 |
12 | // Time how long tasks take. Can help when optimizing build times
13 | require('time-grunt')(grunt);
14 |
15 | // Automatically load required Grunt tasks
16 | require('jit-grunt')(grunt, {
17 | useminPrepare: 'grunt-usemin',
18 | ngtemplates: 'grunt-angular-templates'
19 | });
20 |
21 | // Configurable paths for the application
22 | var appConfig = {
23 | app: require('./bower.json').appPath || 'app',
24 | dist: 'dist'
25 | };
26 |
27 | // Define the configuration for all the tasks
28 | grunt.initConfig({
29 |
30 | 'gh-pages': {
31 | options: {
32 | base: 'dist'
33 | },
34 | src: ['**']
35 | },
36 |
37 | // Project settings
38 | yeoman: appConfig,
39 |
40 | // Watches files for changes and runs tasks based on the changed files
41 | watch: {
42 | js: {
43 | files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
44 | tasks: ['newer:jshint:all'],
45 | options: {
46 | livereload: '<%= connect.options.livereload %>'
47 | }
48 | },
49 | jsTest: {
50 | files: ['test/spec/{,*/}*.js'],
51 | tasks: ['newer:jshint:test', 'karma']
52 | },
53 | styles: {
54 | files: ['<%= yeoman.app %>/styles/{,*/}*.css'],
55 | tasks: ['newer:copy:styles', 'autoprefixer']
56 | },
57 | gruntfile: {
58 | files: ['Gruntfile.js']
59 | },
60 | livereload: {
61 | options: {
62 | livereload: '<%= connect.options.livereload %>'
63 | },
64 | files: [
65 | '<%= yeoman.app %>/{,*/}*.html',
66 | '.tmp/styles/{,*/}*.css',
67 | '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}'
68 | ]
69 | }
70 | },
71 |
72 | // The actual grunt server settings
73 | connect: {
74 | options: {
75 | port: 9000,
76 | // Change this to '0.0.0.0' to access the server from outside.
77 | hostname: 'localhost',
78 | livereload: 35729
79 | },
80 | livereload: {
81 | options: {
82 | open: true,
83 | middleware: function (connect) {
84 | return [
85 | connect.static('.tmp'),
86 | connect().use(
87 | '/bower_components',
88 | connect.static('./bower_components')
89 | ),
90 | connect().use(
91 | '/app/styles',
92 | connect.static('./app/styles')
93 | ),
94 | connect.static(appConfig.app)
95 | ];
96 | }
97 | }
98 | },
99 | test: {
100 | options: {
101 | port: 9001,
102 | middleware: function (connect) {
103 | return [
104 | connect.static('.tmp'),
105 | connect.static('test'),
106 | connect().use(
107 | '/bower_components',
108 | connect.static('./bower_components')
109 | ),
110 | connect.static(appConfig.app)
111 | ];
112 | }
113 | }
114 | },
115 | dist: {
116 | options: {
117 | open: true,
118 | base: '<%= yeoman.dist %>'
119 | }
120 | }
121 | },
122 |
123 | cssmin: {
124 | dist: {
125 | files: {
126 | '<%= yeoman.dist %>/styles/main.css': [
127 | '.tmp/styles/{,*/}*.css'
128 | ]
129 | }
130 | }
131 | },
132 | uglify: {
133 | dist: {
134 | files: {
135 | '<%= yeoman.dist %>/scripts/{,*/}*.js': [
136 | '<%= yeoman.dist %>/scripts/{,*/}*.js'
137 | ]
138 | }
139 | }
140 | },
141 | concat: {
142 | dist: {
143 | src: [ '<%= yeoman.dist %>/scripts/{,*/}*.js' ],
144 | dest: 'dist/app.js'
145 | }
146 | },
147 |
148 | // Make sure code styles are up to par and there are no obvious mistakes
149 | jshint: {
150 | options: {
151 | jshintrc: '.jshintrc',
152 | reporter: require('jshint-stylish')
153 | },
154 | all: {
155 | src: [
156 | 'Gruntfile.js',
157 | '<%= yeoman.app %>/scripts/{,*/}*.js'
158 | ]
159 | },
160 | test: {
161 | options: {
162 | jshintrc: 'test/.jshintrc'
163 | },
164 | src: ['test/spec/{,*/}*.js']
165 | }
166 | },
167 |
168 | // Empties folders to start fresh
169 | clean: {
170 | dist: {
171 | files: [{
172 | dot: true,
173 | src: [
174 | '.tmp',
175 | '<%= yeoman.dist %>/{,*/}*',
176 | '!<%= yeoman.dist %>/.git{,*/}*'
177 | ]
178 | }]
179 | },
180 | server: '.tmp'
181 | },
182 |
183 | // Add vendor prefixed styles
184 | autoprefixer: {
185 | options: {
186 | browsers: ['last 1 version']
187 | },
188 | server: {
189 | options: {
190 | map: true,
191 | },
192 | files: [{
193 | expand: true,
194 | cwd: '.tmp/styles/',
195 | src: '{,*/}*.css',
196 | dest: '.tmp/styles/'
197 | }]
198 | },
199 | dist: {
200 | files: [{
201 | expand: true,
202 | cwd: '.tmp/styles/',
203 | src: '{,*/}*.css',
204 | dest: '.tmp/styles/'
205 | }]
206 | }
207 | },
208 |
209 | // Renames files for browser caching purposes
210 | filerev: {
211 | dist: {
212 | src: [
213 | '<%= yeoman.dist %>/scripts/{,*/}*.js',
214 | '<%= yeoman.dist %>/styles/{,*/}*.css',
215 | '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
216 | '<%= yeoman.dist %>/styles/fonts/*'
217 | ]
218 | }
219 | },
220 |
221 | // Reads HTML for usemin blocks to enable smart builds that automatically
222 | // concat, minify and revision files. Creates configurations in memory so
223 | // additional tasks can operate on them
224 | useminPrepare: {
225 | html: '<%= yeoman.app %>/index.html',
226 | options: {
227 | dest: '<%= yeoman.dist %>',
228 | flow: {
229 | html: {
230 | steps: {
231 | js: ['concat', 'uglifyjs'],
232 | css: ['cssmin']
233 | },
234 | post: {}
235 | }
236 | }
237 | }
238 | },
239 |
240 | // Performs rewrites based on filerev and the useminPrepare configuration
241 | usemin: {
242 | html: ['<%= yeoman.dist %>/{,*/}*.html'],
243 | css: ['<%= yeoman.dist %>/styles/{,*/}*.css'],
244 | js: ['<%= yeoman.dist %>/scripts/{,*/}*.js'],
245 | options: {
246 | assetsDirs: [
247 | '<%= yeoman.dist %>',
248 | '<%= yeoman.dist %>/images',
249 | '<%= yeoman.dist %>/styles'
250 | ],
251 | patterns: {
252 | js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']]
253 | }
254 | }
255 | },
256 |
257 | imagemin: {
258 | dist: {
259 | files: [{
260 | expand: true,
261 | cwd: '<%= yeoman.app %>/images',
262 | src: '{,*/}*.{png,jpg,jpeg,gif}',
263 | dest: '<%= yeoman.dist %>/images'
264 | }]
265 | }
266 | },
267 |
268 | svgmin: {
269 | dist: {
270 | files: [{
271 | expand: true,
272 | cwd: '<%= yeoman.app %>/images',
273 | src: '{,*/}*.svg',
274 | dest: '<%= yeoman.dist %>/images'
275 | }]
276 | }
277 | },
278 |
279 | htmlmin: {
280 | dist: {
281 | options: {
282 | collapseWhitespace: true,
283 | conservativeCollapse: true,
284 | collapseBooleanAttributes: true,
285 | removeCommentsFromCDATA: true
286 | },
287 | files: [{
288 | expand: true,
289 | cwd: '<%= yeoman.dist %>',
290 | src: ['*.html'],
291 | dest: '<%= yeoman.dist %>'
292 | }]
293 | }
294 | },
295 |
296 | ngtemplates: {
297 | dist: {
298 | options: {
299 | module: 'asciidocularApp',
300 | htmlmin: '<%= htmlmin.dist.options %>',
301 | usemin: 'scripts/scripts.js'
302 | },
303 | cwd: '<%= yeoman.app %>',
304 | src: 'views/{,*/}*.html',
305 | dest: '.tmp/templateCache.js'
306 | }
307 | },
308 |
309 | // ng-annotate tries to make the code safe for minification automatically
310 | // by using the Angular long form for dependency injection.
311 | ngAnnotate: {
312 | dist: {
313 | files: [{
314 | expand: true,
315 | cwd: '.tmp/concat/scripts',
316 | src: '*.js',
317 | dest: '.tmp/concat/scripts'
318 | }]
319 | }
320 | },
321 |
322 | // Copies remaining files to places other tasks can use
323 | copy: {
324 | dist: {
325 | files: [{
326 | expand: true,
327 | dot: true,
328 | cwd: '<%= yeoman.app %>',
329 | dest: '<%= yeoman.dist %>',
330 | src: [
331 | '*.{ico,png,txt}',
332 | '.htaccess',
333 | '*.html',
334 | 'images/{,*/}*.{webp}',
335 | 'styles/fonts/{,*/}*.*',
336 | 'docs/**'
337 | ]
338 | }, {
339 | expand: true,
340 | cwd: '.tmp/images',
341 | dest: '<%= yeoman.dist %>/images',
342 | src: ['generated/*']
343 | }, {
344 | //for font-awesome
345 | expand: true,
346 | dot: true,
347 | cwd: 'bower_components/font-awesome',
348 | src: ['fonts/*.*'],
349 | dest: '<%= yeoman.dist %>'
350 | }]
351 | },
352 | styles: {
353 | expand: true,
354 | cwd: '<%= yeoman.app %>/styles',
355 | dest: '.tmp/styles/',
356 | src: '{,*/}*.css'
357 | }
358 | },
359 |
360 | // Run some tasks in parallel to speed up the build process
361 | concurrent: {
362 | server: [
363 | 'copy:styles'
364 | ],
365 | test: [
366 | 'copy:styles'
367 | ],
368 | dist: [
369 | 'copy:styles',
370 | 'imagemin',
371 | 'svgmin'
372 | ]
373 | },
374 |
375 | // Test settings
376 | karma: {
377 | unit: {
378 | configFile: 'test/karma.conf.js',
379 | singleRun: true
380 | }
381 | }
382 | });
383 |
384 |
385 | grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
386 | if (target === 'dist') {
387 | return grunt.task.run(['build', 'connect:dist:keepalive']);
388 | }
389 |
390 | grunt.task.run([
391 | 'clean:server',
392 | 'concurrent:server',
393 | 'autoprefixer:server',
394 | 'connect:livereload',
395 | 'watch'
396 | ]);
397 | });
398 |
399 | grunt.registerTask('test', [
400 | 'clean:server',
401 | 'concurrent:test',
402 | 'autoprefixer',
403 | 'connect:test',
404 | 'karma'
405 | ]);
406 |
407 | grunt.registerTask('build', [
408 | 'clean:dist',
409 | 'useminPrepare',
410 | 'concurrent:dist',
411 | 'autoprefixer',
412 | 'ngtemplates',
413 | 'concat',
414 | 'ngAnnotate',
415 | 'copy:dist',
416 | 'cssmin',
417 | 'uglify',
418 | 'filerev',
419 | 'usemin',
420 | 'htmlmin'
421 | ]);
422 |
423 | grunt.registerTask('default', [
424 | 'newer:jshint',
425 | 'build'
426 | ]);
427 | };
428 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright {yyyy} {name of copyright owner}
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
203 |
--------------------------------------------------------------------------------
/README.adoc:
--------------------------------------------------------------------------------
1 | = Asciidocular
2 | :icons: font
3 | :hardbreaks:
4 |
5 | image:https://travis-ci.org/RobWin/asciidocular.svg?branch=master["Build Status", link="https://travis-ci.org/RobWin/asciidocular"]
6 |
7 | NOTE: Currently highly under development.
8 |
9 | Asciidocular is a small AngularJS web app that loads http://asciidoctor.org/[AsciiDoctor] files via Ajax and renders them as a full web site. Asciidocular uses https://github.com/asciidoctor/asciidoctor.js[asciidoctor.js] to convert the AsciiDoc files into HTML.
10 |
11 | Asciidocular can be used to create a documentation site of your project or API. For example, you could use Asciidocular together with https://github.com/Swagger2Markup/swagger2markup[Swagger2Markup] to create a documentation site of your http://swagger.io[Swagger] API.
12 |
13 | Since AsciiDoc syntax is just plain text, you can write an AsciiDoc document using any text editor.
14 |
15 | Advantages:
16 |
17 | * No build process and server-side tools needed to convert your AsciiDoc files into HTML
18 | * Responsive Bootswatch (Bootstrap) theme
19 | * Deployable via GitHub Pages
20 | * Just create AsciiDoc files and deploy!
21 |
22 | Features:
23 |
24 | * Supports highlight.js
25 | * Supports Font-Awesome
26 |
27 | == Demo
28 |
29 | http://robwin.github.io/asciidocular[Live Demo] deployed on GitHub Pages.
30 |
31 | == Usage Guide
32 |
33 | === Building from source
34 |
35 | Make sure you have http://nodejs.org/[Node.js] installed.
36 |
37 | ----
38 | git clone https://github.com/RobWin/asciidocular.git
39 | cd asciidocular
40 | npm run build
41 | ----
42 |
43 | === Create AsciiDoc files
44 |
45 | You have to create an `index.adoc` file in the `docs` folder of the app.
46 |
47 | ----
48 | = Asciidocular //<1>
49 | Robert Winkler
50 | :icons: font
51 | :icons: font
52 | :source-highlighter: highlightjs
53 | :hardbreaks:
54 | :idprefix:
55 |
56 | This is a preamble. <2>
57 |
58 | [icon="fa fa-wrench"] <3>
59 | == Chapter 1 //<4>
60 |
61 | === Chapter 1.1 //<5>
62 |
63 | Text in chapter 1.1
64 |
65 | * Item 1
66 | * Item 2
67 |
68 | NOTE: Asciidoctor supports font-based admonition icons, powered by Font Awesome!
69 |
70 | \include::chapter2.adoc[] //<6>
71 | ----
72 |
73 | <1> The document title is the title of the web site.
74 | <2> The preamble of the document is the content of the jumbotron.
75 | <3> You can add Font Awesome icons in front of top-level navigation items
76 | <4> Each level 1 section title is a top-level navigation item
77 | <5> Each level 2 section title is a sub navigation item of the parent section in the navigation bar.
78 | <6> You can include other AsciiDoc files into the `index.adoc` file.
79 |
80 | == Examples
81 |
82 | === Asciidocular on Mobile Phone
83 | image::images/asciidocular_mobile.png[]
84 |
85 | === Asciidocular on Tablet
86 | ==== Home
87 | image::images/asciidocular_home.png[]
88 |
89 | ==== Sections
90 | image::images/asciidocular_section.png[]
91 |
92 | == Questions
93 | You can ask questions about Asciidocular in https://gitter.im/Swagger2Markup/swagger2markup[Gitter].
94 |
95 | == Bugs
96 | If you believe you have found a bug, please take a moment to search the existing issues. If no one else has reported the problem, please open a new issue that describes the problem in detail and, ideally, includes a test that reproduces it.
97 |
98 | == Enhancements
99 | If you’d like an enhancement to be made to Asciidocular, pull requests are most welcome. The source code is on GitHub. You may want to search the existing issues and pull requests to see if the enhancement is already being worked on. You may also want to open a new issue to discuss a possible enhancement before work on it begins.
100 |
101 | == License
102 |
103 | Copyright 2015 Robert Winkler
104 |
105 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
106 |
107 | http://www.apache.org/licenses/LICENSE-2.0
108 |
109 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
110 |
--------------------------------------------------------------------------------
/app/.buildignore:
--------------------------------------------------------------------------------
1 | *.coffee
--------------------------------------------------------------------------------
/app/.htaccess:
--------------------------------------------------------------------------------
1 | # Apache Configuration File
2 |
3 | # (!) Using `.htaccess` files slows down Apache, therefore, if you have access
4 | # to the main server config file (usually called `httpd.conf`), you should add
5 | # this logic there: http://httpd.apache.org/docs/current/howto/htaccess.html.
6 |
7 | # ##############################################################################
8 | # # CROSS-ORIGIN RESOURCE SHARING (CORS) #
9 | # ##############################################################################
10 |
11 | # ------------------------------------------------------------------------------
12 | # | Cross-domain AJAX requests |
13 | # ------------------------------------------------------------------------------
14 |
15 | # Enable cross-origin AJAX requests.
16 | # http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
17 | # http://enable-cors.org/
18 |
19 | #
20 | # Header set Access-Control-Allow-Origin "*"
21 | #
22 |
23 | # ------------------------------------------------------------------------------
24 | # | CORS-enabled images |
25 | # ------------------------------------------------------------------------------
26 |
27 | # Send the CORS header for images when browsers request it.
28 | # https://developer.mozilla.org/en/CORS_Enabled_Image
29 | # http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
30 | # http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
31 |
32 |
33 |
34 |
35 | SetEnvIf Origin ":" IS_CORS
36 | Header set Access-Control-Allow-Origin "*" env=IS_CORS
37 |
38 |
39 |
40 |
41 | # ------------------------------------------------------------------------------
42 | # | Web fonts access |
43 | # ------------------------------------------------------------------------------
44 |
45 | # Allow access from all domains for web fonts
46 |
47 |
48 |
49 | Header set Access-Control-Allow-Origin "*"
50 |
51 |
52 |
53 |
54 | # ##############################################################################
55 | # # ERRORS #
56 | # ##############################################################################
57 |
58 | # ------------------------------------------------------------------------------
59 | # | 404 error prevention for non-existing redirected folders |
60 | # ------------------------------------------------------------------------------
61 |
62 | # Prevent Apache from returning a 404 error for a rewrite if a directory
63 | # with the same name does not exist.
64 | # http://httpd.apache.org/docs/current/content-negotiation.html#multiviews
65 | # http://www.webmasterworld.com/apache/3808792.htm
66 |
67 | Options -MultiViews
68 |
69 | # ------------------------------------------------------------------------------
70 | # | Custom error messages / pages |
71 | # ------------------------------------------------------------------------------
72 |
73 | # You can customize what Apache returns to the client in case of an error (see
74 | # http://httpd.apache.org/docs/current/mod/core.html#errordocument), e.g.:
75 |
76 | ErrorDocument 404 /404.html
77 |
78 |
79 | # ##############################################################################
80 | # # INTERNET EXPLORER #
81 | # ##############################################################################
82 |
83 | # ------------------------------------------------------------------------------
84 | # | Better website experience |
85 | # ------------------------------------------------------------------------------
86 |
87 | # Force IE to render pages in the highest available mode in the various
88 | # cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf.
89 |
90 |
91 | Header set X-UA-Compatible "IE=edge"
92 | # `mod_headers` can't match based on the content-type, however, we only
93 | # want to send this header for HTML pages and not for the other resources
94 |
95 | Header unset X-UA-Compatible
96 |
97 |
98 |
99 | # ------------------------------------------------------------------------------
100 | # | Cookie setting from iframes |
101 | # ------------------------------------------------------------------------------
102 |
103 | # Allow cookies to be set from iframes in IE.
104 |
105 | #
106 | # Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
107 | #
108 |
109 | # ------------------------------------------------------------------------------
110 | # | Screen flicker |
111 | # ------------------------------------------------------------------------------
112 |
113 | # Stop screen flicker in IE on CSS rollovers (this only works in
114 | # combination with the `ExpiresByType` directives for images from below).
115 |
116 | # BrowserMatch "MSIE" brokenvary=1
117 | # BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
118 | # BrowserMatch "Opera" !brokenvary
119 | # SetEnvIf brokenvary 1 force-no-vary
120 |
121 |
122 | # ##############################################################################
123 | # # MIME TYPES AND ENCODING #
124 | # ##############################################################################
125 |
126 | # ------------------------------------------------------------------------------
127 | # | Proper MIME types for all files |
128 | # ------------------------------------------------------------------------------
129 |
130 |
131 |
132 | # Audio
133 | AddType audio/mp4 m4a f4a f4b
134 | AddType audio/ogg oga ogg
135 |
136 | # JavaScript
137 | # Normalize to standard type (it's sniffed in IE anyways):
138 | # http://tools.ietf.org/html/rfc4329#section-7.2
139 | AddType application/javascript js jsonp
140 | AddType application/json json
141 |
142 | # Video
143 | AddType video/mp4 mp4 m4v f4v f4p
144 | AddType video/ogg ogv
145 | AddType video/webm webm
146 | AddType video/x-flv flv
147 |
148 | # Web fonts
149 | AddType application/font-woff woff
150 | AddType application/vnd.ms-fontobject eot
151 |
152 | # Browsers usually ignore the font MIME types and sniff the content,
153 | # however, Chrome shows a warning if other MIME types are used for the
154 | # following fonts.
155 | AddType application/x-font-ttf ttc ttf
156 | AddType font/opentype otf
157 |
158 | # Make SVGZ fonts work on iPad:
159 | # https://twitter.com/FontSquirrel/status/14855840545
160 | AddType image/svg+xml svg svgz
161 | AddEncoding gzip svgz
162 |
163 | # Other
164 | AddType application/octet-stream safariextz
165 | AddType application/x-chrome-extension crx
166 | AddType application/x-opera-extension oex
167 | AddType application/x-shockwave-flash swf
168 | AddType application/x-web-app-manifest+json webapp
169 | AddType application/x-xpinstall xpi
170 | AddType application/xml atom rdf rss xml
171 | AddType image/webp webp
172 | AddType image/x-icon ico
173 | AddType text/cache-manifest appcache manifest
174 | AddType text/vtt vtt
175 | AddType text/x-component htc
176 | AddType text/x-vcard vcf
177 |
178 |
179 |
180 | # ------------------------------------------------------------------------------
181 | # | UTF-8 encoding |
182 | # ------------------------------------------------------------------------------
183 |
184 | # Use UTF-8 encoding for anything served as `text/html` or `text/plain`.
185 | AddDefaultCharset utf-8
186 |
187 | # Force UTF-8 for certain file formats.
188 |
189 | AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml
190 |
191 |
192 |
193 | # ##############################################################################
194 | # # URL REWRITES #
195 | # ##############################################################################
196 |
197 | # ------------------------------------------------------------------------------
198 | # | Rewrite engine |
199 | # ------------------------------------------------------------------------------
200 |
201 | # Turning on the rewrite engine and enabling the `FollowSymLinks` option is
202 | # necessary for the following directives to work.
203 |
204 | # If your web host doesn't allow the `FollowSymlinks` option, you may need to
205 | # comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the
206 | # performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks
207 |
208 | # Also, some cloud hosting services require `RewriteBase` to be set:
209 | # http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site
210 |
211 |
212 | Options +FollowSymlinks
213 | # Options +SymLinksIfOwnerMatch
214 | RewriteEngine On
215 | # RewriteBase /
216 |
217 |
218 | # ------------------------------------------------------------------------------
219 | # | Suppressing / Forcing the "www." at the beginning of URLs |
220 | # ------------------------------------------------------------------------------
221 |
222 | # The same content should never be available under two different URLs especially
223 | # not with and without "www." at the beginning. This can cause SEO problems
224 | # (duplicate content), therefore, you should choose one of the alternatives and
225 | # redirect the other one.
226 |
227 | # By default option 1 (no "www.") is activated:
228 | # http://no-www.org/faq.php?q=class_b
229 |
230 | # If you'd prefer to use option 2, just comment out all the lines from option 1
231 | # and uncomment the ones from option 2.
232 |
233 | # IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!
234 |
235 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
236 |
237 | # Option 1: rewrite www.example.com → example.com
238 |
239 |
240 | RewriteCond %{HTTPS} !=on
241 | RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
242 | RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
243 |
244 |
245 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
246 |
247 | # Option 2: rewrite example.com → www.example.com
248 |
249 | # Be aware that the following might not be a good idea if you use "real"
250 | # subdomains for certain parts of your website.
251 |
252 | #
253 | # RewriteCond %{HTTPS} !=on
254 | # RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
255 | # RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
256 | #
257 |
258 |
259 | # ##############################################################################
260 | # # SECURITY #
261 | # ##############################################################################
262 |
263 | # ------------------------------------------------------------------------------
264 | # | Content Security Policy (CSP) |
265 | # ------------------------------------------------------------------------------
266 |
267 | # You can mitigate the risk of cross-site scripting and other content-injection
268 | # attacks by setting a Content Security Policy which whitelists trusted sources
269 | # of content for your site.
270 |
271 | # The example header below allows ONLY scripts that are loaded from the current
272 | # site's origin (no inline scripts, no CDN, etc). This almost certainly won't
273 | # work as-is for your site!
274 |
275 | # To get all the details you'll need to craft a reasonable policy for your site,
276 | # read: http://html5rocks.com/en/tutorials/security/content-security-policy (or
277 | # see the specification: http://w3.org/TR/CSP).
278 |
279 | #
280 | # Header set Content-Security-Policy "script-src 'self'; object-src 'self'"
281 | #
282 | # Header unset Content-Security-Policy
283 | #
284 | #
285 |
286 | # ------------------------------------------------------------------------------
287 | # | File access |
288 | # ------------------------------------------------------------------------------
289 |
290 | # Block access to directories without a default document.
291 | # Usually you should leave this uncommented because you shouldn't allow anyone
292 | # to surf through every directory on your server (which may includes rather
293 | # private places like the CMS's directories).
294 |
295 |
296 | Options -Indexes
297 |
298 |
299 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
300 |
301 | # Block access to hidden files and directories.
302 | # This includes directories used by version control systems such as Git and SVN.
303 |
304 |
305 | RewriteCond %{SCRIPT_FILENAME} -d [OR]
306 | RewriteCond %{SCRIPT_FILENAME} -f
307 | RewriteRule "(^|/)\." - [F]
308 |
309 |
310 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
311 |
312 | # Block access to backup and source files.
313 | # These files may be left by some text editors and can pose a great security
314 | # danger when anyone has access to them.
315 |
316 |
317 | Order allow,deny
318 | Deny from all
319 | Satisfy All
320 |
321 |
322 | # ------------------------------------------------------------------------------
323 | # | Secure Sockets Layer (SSL) |
324 | # ------------------------------------------------------------------------------
325 |
326 | # Rewrite secure requests properly to prevent SSL certificate warnings, e.g.:
327 | # prevent `https://www.example.com` when your certificate only allows
328 | # `https://secure.example.com`.
329 |
330 | #
331 | # RewriteCond %{SERVER_PORT} !^443
332 | # RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
333 | #
334 |
335 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
336 |
337 | # Force client-side SSL redirection.
338 |
339 | # If a user types "example.com" in his browser, the above rule will redirect him
340 | # to the secure version of the site. That still leaves a window of opportunity
341 | # (the initial HTTP connection) for an attacker to downgrade or redirect the
342 | # request. The following header ensures that browser will ONLY connect to your
343 | # server via HTTPS, regardless of what the users type in the address bar.
344 | # http://www.html5rocks.com/en/tutorials/security/transport-layer-security/
345 |
346 | #
347 | # Header set Strict-Transport-Security max-age=16070400;
348 | #
349 |
350 | # ------------------------------------------------------------------------------
351 | # | Server software information |
352 | # ------------------------------------------------------------------------------
353 |
354 | # Avoid displaying the exact Apache version number, the description of the
355 | # generic OS-type and the information about Apache's compiled-in modules.
356 |
357 | # ADD THIS DIRECTIVE IN THE `httpd.conf` AS IT WILL NOT WORK IN THE `.htaccess`!
358 |
359 | # ServerTokens Prod
360 |
361 |
362 | # ##############################################################################
363 | # # WEB PERFORMANCE #
364 | # ##############################################################################
365 |
366 | # ------------------------------------------------------------------------------
367 | # | Compression |
368 | # ------------------------------------------------------------------------------
369 |
370 |
371 |
372 | # Force compression for mangled headers.
373 | # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping
374 |
375 |
376 | SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
377 | RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
378 |
379 |
380 |
381 | # Compress all output labeled with one of the following MIME-types
382 | # (for Apache versions below 2.3.7, you don't need to enable `mod_filter`
383 | # and can remove the `` and `` lines
384 | # as `AddOutputFilterByType` is still in the core directives).
385 |
386 | AddOutputFilterByType DEFLATE application/atom+xml \
387 | application/javascript \
388 | application/json \
389 | application/rss+xml \
390 | application/vnd.ms-fontobject \
391 | application/x-font-ttf \
392 | application/x-web-app-manifest+json \
393 | application/xhtml+xml \
394 | application/xml \
395 | font/opentype \
396 | image/svg+xml \
397 | image/x-icon \
398 | text/css \
399 | text/html \
400 | text/plain \
401 | text/x-component \
402 | text/xml
403 |
404 |
405 |
406 |
407 | # ------------------------------------------------------------------------------
408 | # | Content transformations |
409 | # ------------------------------------------------------------------------------
410 |
411 | # Prevent some of the mobile network providers from modifying the content of
412 | # your site: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5.
413 |
414 | #
415 | # Header set Cache-Control "no-transform"
416 | #
417 |
418 | # ------------------------------------------------------------------------------
419 | # | ETag removal |
420 | # ------------------------------------------------------------------------------
421 |
422 | # Since we're sending far-future expires headers (see below), ETags can
423 | # be removed: http://developer.yahoo.com/performance/rules.html#etags.
424 |
425 | # `FileETag None` is not enough for every server.
426 |
427 | Header unset ETag
428 |
429 |
430 | FileETag None
431 |
432 | # ------------------------------------------------------------------------------
433 | # | Expires headers (for better cache control) |
434 | # ------------------------------------------------------------------------------
435 |
436 | # The following expires headers are set pretty far in the future. If you don't
437 | # control versioning with filename-based cache busting, consider lowering the
438 | # cache time for resources like CSS and JS to something like 1 week.
439 |
440 |
441 |
442 | ExpiresActive on
443 | ExpiresDefault "access plus 1 month"
444 |
445 | # CSS
446 | ExpiresByType text/css "access plus 1 year"
447 |
448 | # Data interchange
449 | ExpiresByType application/json "access plus 0 seconds"
450 | ExpiresByType application/xml "access plus 0 seconds"
451 | ExpiresByType text/xml "access plus 0 seconds"
452 |
453 | # Favicon (cannot be renamed!)
454 | ExpiresByType image/x-icon "access plus 1 week"
455 |
456 | # HTML components (HTCs)
457 | ExpiresByType text/x-component "access plus 1 month"
458 |
459 | # HTML
460 | ExpiresByType text/html "access plus 0 seconds"
461 |
462 | # JavaScript
463 | ExpiresByType application/javascript "access plus 1 year"
464 |
465 | # Manifest files
466 | ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
467 | ExpiresByType text/cache-manifest "access plus 0 seconds"
468 |
469 | # Media
470 | ExpiresByType audio/ogg "access plus 1 month"
471 | ExpiresByType image/gif "access plus 1 month"
472 | ExpiresByType image/jpeg "access plus 1 month"
473 | ExpiresByType image/png "access plus 1 month"
474 | ExpiresByType video/mp4 "access plus 1 month"
475 | ExpiresByType video/ogg "access plus 1 month"
476 | ExpiresByType video/webm "access plus 1 month"
477 |
478 | # Web feeds
479 | ExpiresByType application/atom+xml "access plus 1 hour"
480 | ExpiresByType application/rss+xml "access plus 1 hour"
481 |
482 | # Web fonts
483 | ExpiresByType application/font-woff "access plus 1 month"
484 | ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
485 | ExpiresByType application/x-font-ttf "access plus 1 month"
486 | ExpiresByType font/opentype "access plus 1 month"
487 | ExpiresByType image/svg+xml "access plus 1 month"
488 |
489 |
490 |
491 | # ------------------------------------------------------------------------------
492 | # | Filename-based cache busting |
493 | # ------------------------------------------------------------------------------
494 |
495 | # If you're not using a build process to manage your filename version revving,
496 | # you might want to consider enabling the following directives to route all
497 | # requests such as `/css/style.12345.css` to `/css/style.css`.
498 |
499 | # To understand why this is important and a better idea than `*.css?v231`, read:
500 | # http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring
501 |
502 | #
503 | # RewriteCond %{REQUEST_FILENAME} !-f
504 | # RewriteCond %{REQUEST_FILENAME} !-d
505 | # RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
506 | #
507 |
508 | # ------------------------------------------------------------------------------
509 | # | File concatenation |
510 | # ------------------------------------------------------------------------------
511 |
512 | # Allow concatenation from within specific CSS and JS files, e.g.:
513 | # Inside of `script.combined.js` you could have
514 | #
515 | #
516 | # and they would be included into this single file.
517 |
518 | #
519 | #
520 | # Options +Includes
521 | # AddOutputFilterByType INCLUDES application/javascript application/json
522 | # SetOutputFilter INCLUDES
523 | #
524 | #
525 | # Options +Includes
526 | # AddOutputFilterByType INCLUDES text/css
527 | # SetOutputFilter INCLUDES
528 | #
529 | #
530 |
531 | # ------------------------------------------------------------------------------
532 | # | Persistent connections |
533 | # ------------------------------------------------------------------------------
534 |
535 | # Allow multiple requests to be sent over the same TCP connection:
536 | # http://httpd.apache.org/docs/current/en/mod/core.html#keepalive.
537 |
538 | # Enable if you serve a lot of static content but, be aware of the
539 | # possible disadvantages!
540 |
541 | #
542 | # Header set Connection Keep-Alive
543 | #
544 |
--------------------------------------------------------------------------------
/app/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Page Not Found :(
6 |
136 |
137 |
138 |
139 |
Not found :(
140 |
Sorry, but the page you were trying to view does not exist.
141 |
It looks like this was the result of either:
142 |
143 |
a mistyped address
144 |
an out-of-date link
145 |
146 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/app/docs/getting_started.adoc:
--------------------------------------------------------------------------------
1 | [icon="fa fa-wrench"]
2 | == Getting started
3 |
4 | === Building from source
5 |
6 | Make sure you have http://nodejs.org/[Node.js] installed.
7 |
8 | [source,bash]
9 | ----
10 | git clone https://github.com/RobWin/asciidocular.git
11 | cd asciidocular
12 | npm run build
13 | ----
14 |
15 | === Create AsciiDoc files
16 |
17 | You have to create an `index.adoc` file in the `docs` folder of the app.
18 |
19 | ----
20 | = Asciidocular //<1>
21 | Robert Winkler
22 | :icons: font
23 | :icons: font
24 | :source-highlighter: highlightjs
25 | :hardbreaks:
26 | :idprefix:
27 |
28 | This is a preamble. <2>
29 |
30 | [icon="fa fa-wrench"] <3>
31 | == Chapter 1 //<4>
32 |
33 | === Chapter 1.1 //<5>
34 |
35 | Text in chapter 1.1
36 |
37 | * Item 1
38 | * Item 2
39 |
40 | NOTE: Asciidoctor supports font-based admonition icons, powered by Font Awesome!
41 |
42 | \include::chapter2.adoc[] //<6>
43 | ----
44 |
45 | <1> The document title is the title of the web site.
46 | <2> The preamble of the document is the content of the jumbotron.
47 | <3> You can add Font Awesome icons in front of top-level navigation items
48 | <4> Each level 1 section title is a top-level navigation item
49 | <5> Each level 2 section title is a sub navigation item of the parent section in the navigation bar.
50 | <6> You can include other AsciiDoc files into the `index.adoc` file.
51 |
--------------------------------------------------------------------------------
/app/docs/index.adoc:
--------------------------------------------------------------------------------
1 | = Asciidocular
2 | Robert Winkler
3 | :icons: font
4 | :source-highlighter: highlightjs
5 | :hardbreaks:
6 | :idprefix:
7 |
8 | http://github.com/RobWin/asciidocular[Asciidocular] is a small AngularJS web app that loads http://asciidoctor.org/[AsciiDoctor] files via Ajax and renders them as a full web site. Asciidocular uses https://github.com/asciidoctor/asciidoctor.js[asciidoctor.js] to convert the AsciiDoc files into HTML.
9 |
10 | *Advantages*:
11 |
12 | * No server-side components needed to convert your AsciiDoc files into HTML
13 | * No build process and tools needed
14 | * Responsive Bootswatch (Bootstrap) theme
15 | * Just create a Asciidoctor files and deploy!
16 |
17 | include::getting_started.adoc[]
18 |
19 | include::writing.adoc[]
20 |
21 | include::support.adoc[]
22 |
23 |
--------------------------------------------------------------------------------
/app/docs/support.adoc:
--------------------------------------------------------------------------------
1 | [icon="fa fa-question"]
2 | == Help and bugs
3 | === Questions
4 | You can ask questions about Asciidocular in https://gitter.im/Swagger2Markup/swagger2markup[Gitter].
5 |
6 | === Bugs
7 | If you believe you have found a bug, please take a moment to search the existing issues. If no one else has reported the problem, please open a new issue that describes the problem in detail and, ideally, includes a test that reproduces it.
8 |
9 | === Enhancements
10 | If you’d like an enhancement to be made to Asciidocular, pull requests are most welcome. The source code is on https://github.com/RobWin/asciidocular[GitHub]. You may want to search the existing issues and pull requests to see if the enhancement is already being worked on. You may also want to open a new issue to discuss a possible enhancement before work on it begins.
11 |
12 | [icon="fa fa-file-text-o"]
13 | == License
14 |
15 | === Apache 2.0
16 |
17 | Copyright 2015 Robert Winkler
18 |
19 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
20 |
21 | http://www.apache.org/licenses/LICENSE-2.0
22 |
23 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
24 |
--------------------------------------------------------------------------------
/app/docs/writing.adoc:
--------------------------------------------------------------------------------
1 | [icon="fa fa-book"]
2 | == Start Writing
3 |
4 | === AsciiDoc Demo
5 |
6 | ==== Source Code Listings
7 |
8 | [source,java]
9 | ----
10 | public MarkupDocument build() throws IOException {
11 | definitions(swagger.getDefinitions(), this.markupDocBuilder); //<1>
12 | return this;
13 | }
14 | ----
15 | <1> Text about item 1
16 |
17 | ==== Tables
18 |
19 | [role="table table-bordered table-striped table-hover",options="header"]
20 | |===
21 | |Name of Column 1 |Name of Column 2
22 | | Cell in column 1, row 1 | Cell in column 2, row 1
23 | | Cell in column 1, row 2 | Cell in column 2, row 2
24 | |===
25 |
26 | ==== Admonitions
27 |
28 | NOTE: Asciidoctor supports font-based admonition icons, powered by Font Awesome!
29 |
30 | WARNING: You can use warnings.
31 |
32 | IMPORTANT: This is important
33 |
34 | ==== Text formatting
35 |
36 | _italic phrase_
37 |
38 | *bold phrase*
39 |
40 | *_bold italic phrase_*
41 |
42 | `monospace phrase`
43 |
44 | ==== Lists
45 |
46 | There are several types of lists supported in AsciiDoc:
47 |
48 | * Unordered
49 | * Ordered
50 | * Labeled
51 | * Nested
52 | ** Level 2
53 | *** Level 3
54 |
55 | ==== Checklist
56 |
57 | - [x] checked
58 | - [ ] not checked
59 |
60 |
61 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobWin/asciidocular/bebbba6261ef4d1d5afdc7d049f4d3569c54e1a8/app/favicon.ico
--------------------------------------------------------------------------------
/app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ docTitle }}
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
56 |
57 |
58 |