├── .gitignore ├── .htaccess ├── README.md ├── htdocs ├── assets │ └── mark-github.svg ├── beta.html ├── custom.css ├── download.php ├── errorHead.html ├── errorTail.html ├── head.html ├── index.html ├── normalize.css ├── preview │ ├── acm.css │ ├── getaway.css │ ├── ieee.css │ └── typebase.css ├── print.css ├── skeleton.css ├── stylesheets │ ├── 20 Examples of Beautiful CSS Typography Design - WDExplorer.webloc │ ├── acm.css │ ├── avenir-white.css │ ├── getaway.css │ ├── ieee.css │ ├── retro.css │ ├── screen.css │ ├── typebase.css │ ├── typebase.css- The starting point for good typography on the web.webloc │ └── typespiration.com - A showcase of web typography designs with re.webloc ├── tail.html └── upload.php ├── license.md ├── php.ini ├── reference.md └── scripts ├── cleanup.sh ├── convert.sh ├── dependencies.sh └── setup.sh /.gitignore: -------------------------------------------------------------------------------- 1 | uploads/ 2 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | upload_max_filesize = 10000000 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pandoc_Web_Interface 2 | 3 | ## Assumptions 4 | 5 | All scripts were created with the following assumptions in mind. Your mileage may vary. 6 | 7 | - Distributor ID: Ubuntu 8 | - Description: Ubuntu 16.04.1 LTS 9 | - Release: 16.04 10 | - Codename: xenial 11 | 12 | ## Setup 13 | 14 | This tool has several dependencies, 15 | 16 | - [apache2](https://httpd.apache.org/) 17 | - [php7.0](https://secure.php.net/) 18 | - [pandoc](http://pandoc.org/) 19 | - [wkhtmltopdf](https://wkhtmltopdf.org/) 20 | - [xvfb](https://www.x.org/archive/X11R7.6/doc/man/man1/Xvfb.1.xhtml) 21 | - [zip](http://www.info-zip.org/) 22 | 23 | from within Pandoc-Web-Interface/ run, 24 | 25 | ``` 26 | bash dependencies.sh 27 | ``` 28 | to install them. This only needs to be done once. 29 | 30 | Next run, 31 | 32 | ``` 33 | bash setup.sh 34 | ``` 35 | 36 | To move necessary files to where they need to be. This needs to be done each time a new version of the Pandoc-Web-Interface is downloaded. 37 | 38 | If Pandoc-Web-Interface is being reinstalled, run the following before setup.sh 39 | 40 | ``` 41 | bash cleanup.sh 42 | ``` 43 | 44 | ## Use 45 | 46 | Upload individual .md files or a .zip archive of multiple .md files and associated assets to be converted to a number of output formats serverside. 47 | 48 | To apply a custom stylesheet include it in the .zip archive and select the "custom" radio button. Selecting radio buttons other than "custom" will override a user-supplied stylesheet. 49 | 50 | Converted files are zipped and directly downloaded in browser 51 | 52 | ## Operation 53 | 54 | Conversiton to PDF is done using the tool [WKHTMLTOPDF](http://wkhtmltopdf.org/): 55 | 56 | `.md -> Pandoc -> .html (w/ CSS) -> WKHTMLTOPDF -> .pdf` 57 | 58 | ## License 59 | 60 | This repository is licensed under the [MIT License](license.md). 61 | -------------------------------------------------------------------------------- /htdocs/assets/mark-github.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | mark-github 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /htdocs/beta.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | Markdown File Converter 9 | 10 | 11 | 12 | 14 | 15 | 16 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 35 | 103 | 104 | 106 | 107 | 108 | 109 | 110 | 111 |

Beta

112 | 113 |
114 |
115 |
116 |

Markdown File Converter

117 |
118 |
119 | 130 |
131 |
132 |

This application is currently under development. As such, files uploaded are being stored for purposes of performance analysis. Once a more stable release is made available, this service will begin immediately deleting uploaded files after they are processed.

133 |

Direct inquiries about this application to codyalantaylor@gmail.com.

134 |

If you'd like to contribute to this application or host your own instance the code may be found on Github.

135 |
136 |

The MIT License

137 |

Copyright 2017 Cody Taylor

138 |

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

139 |

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

140 |

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

141 |
142 |
143 | 150 |
151 | 152 | 153 | 154 | -------------------------------------------------------------------------------- /htdocs/custom.css: -------------------------------------------------------------------------------- 1 | .container{ 2 | max-width: 700px; 3 | scroll-behavior: smooth; 4 | } 5 | 6 | #menu{ 7 | text-align: center; 8 | border: 1px solid #E1E1E1; 9 | border-radius: 4px; 10 | padding: 10px; 11 | margin-bottom: 10px; 12 | } 13 | 14 | #menu h6{ 15 | margin-bottom: 0px; 16 | } 17 | 18 | #menu div:hover{ 19 | color: #555; 20 | cursor: pointer; 21 | background-color: #F6F6F6; 22 | border: 1px solid #E1E1E1; 23 | border-radius: 4px; 24 | } 25 | 26 | #menu a{ 27 | text-decoration: none; 28 | color: #555; 29 | } 30 | 31 | input{ 32 | margin-left: 10px; 33 | margin-right: 10px; 34 | } 35 | 36 | #title{ 37 | margin-top: 50px; 38 | } 39 | 40 | .border{ 41 | border: 1px solid #E1E1E1; 42 | border-radius: 4px; 43 | padding: 20px; 44 | margin-bottom: 30px; 45 | } 46 | 47 | .form{ 48 | border: 1px solid #E1E1E1; 49 | border-radius: 4px; 50 | padding: 20px; 51 | } 52 | 53 | .alert{ 54 | display: none; 55 | border: 1px solid #E1E1E1; 56 | border-radius: 4px; 57 | padding: 20px; 58 | } 59 | 60 | label{ 61 | display: inline; 62 | cursor: pointer; 63 | } 64 | 65 | .options{ 66 | background: #F6F6F6; 67 | border: 1px solid #E1E1E1; 68 | border-radius: 4px; 69 | padding-top: 10px; 70 | margin-bottom: 10px; 71 | } 72 | 73 | @media (max-width: 550px) { 74 | .options{ 75 | background: #F6F6F6; 76 | border: 1px solid #E1E1E1; 77 | border-radius: 4px; 78 | padding-top: 10px; 79 | padding-bottom: 10px; 80 | margin-bottom: 10px; 81 | } 82 | } 83 | 84 | #more{ 85 | display: inline-block; 86 | padding: 0 30px; 87 | margin-left: 10px; 88 | color: #555; 89 | text-align: center; 90 | background-color: transparent; 91 | border-radius: 4px; 92 | border: 1px solid #bbb; 93 | width: 40px; 94 | } 95 | 96 | #less{ 97 | display: none; 98 | padding: 0 30px; 99 | margin-left: 10px; 100 | color: #555; 101 | text-align: center; 102 | background-color: transparent; 103 | border-radius: 4px; 104 | border: 1px solid #bbb; 105 | width: 40px; 106 | } 107 | 108 | #more-options{ 109 | display: none; 110 | } 111 | 112 | #preview-container{ 113 | display: none; 114 | } 115 | 116 | #reference-container{ 117 | display: block; 118 | } 119 | 120 | #frame{ 121 | display: block; 122 | } 123 | 124 | pre > code { 125 | display: block; 126 | padding: 1rem 1.5rem; 127 | white-space: pre-line; 128 | } 129 | 130 | img{ 131 | max-width: 100%; 132 | } 133 | 134 | .caption{ 135 | font-style: italic; 136 | text-align: center; 137 | max-width: 80%; 138 | padding-left: 10%; 139 | } 140 | 141 | #footer{ 142 | padding-bottom: 50px; 143 | } 144 | 145 | #octocat{ 146 | display: block; 147 | margin-left: auto; 148 | margin-right: auto; 149 | height: 40px; 150 | width: 40px; 151 | } 152 | 153 | #octocat img{ 154 | width: 100%; 155 | } 156 | 157 | #option-Stand-Alone{ 158 | display: none; 159 | left: 20px; 160 | position: relative; 161 | color: gray; 162 | } 163 | -------------------------------------------------------------------------------- /htdocs/download.php: -------------------------------------------------------------------------------- 1 | 35 | -------------------------------------------------------------------------------- /htdocs/errorHead.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 13 | 14 | Skeleton: Responsive CSS Boilerplate 15 | 16 | 17 | 18 | 20 | 21 | 22 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |
37 |

49 | 


--------------------------------------------------------------------------------
/htdocs/errorTail.html:
--------------------------------------------------------------------------------
 1 | 
31 |
32 |
33 |
34 |
35 | 36 |
37 |
38 |
39 | 40 | 41 | -------------------------------------------------------------------------------- /htdocs/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 17 | 18 | 19 | 20 |
21 | 22 |
23 | 24 |
25 | 31 | 32 |
33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /htdocs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | Markdown File Converter 9 | 10 | 11 | 12 | 14 | 15 | 16 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 33 | 35 | 84 | 85 | 87 | 88 | 89 | 90 | 91 |
92 |
93 |
94 |

Parameters

95 |
96 |
97 |
98 |
99 |
100 |
File to Upload:
101 |
102 |
103 |
104 |
105 | 106 |
107 |
108 |
109 |
110 |
Output Formats:
111 |
112 |
113 |
114 |
115 |
116 | 117 | 118 |
119 | 123 |
124 |
125 | 126 | 127 |
128 |
129 | 130 | 131 |
132 |
133 | 134 | 135 |
136 |
137 |
138 |
139 |
Stylesheet:
140 |
141 |
142 |
143 | 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 |

Converting ...

185 |

Your file will be downloaded momentraily.

186 | 187 |
188 |
189 |
190 |
191 |

Preview

192 |
193 |
194 |
195 |
196 |

This is a heading

197 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

198 |

\[\int 1 = x + C\] \[\int x = \frac{x^2}{2} + C\] \[\int x^2 = \frac{x^3}{3} + C\]

199 |

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

200 |
for filename in *
201 |           do
202 |           echo $filename >> files.txt
203 |           done
204 |

This is a subheading

205 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.1 Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

206 |
    207 |
  • Item one
  • 208 |
  • Item two
  • 209 |
  • Item three
  • 210 |
211 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

212 |
213 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

214 |
215 |

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

216 |
217 |
218 |
    219 |
  1. This is a footnote.

  2. 220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |

Reference

229 |
230 |
231 |
232 |
233 |

Paragraph text requires no syntax.

234 |
Paragraph text requires no syntax.
235 |

Italic

236 |
*Italic*
237 |

Bold

238 |
**Bold**
239 |

OU Libraries

240 |
[OU Libraries](http://libraries.ou.edu)
241 |
242 | This text is a caption. 243 |

This text is a caption.

244 |
245 |
![Image](https://libraries.ou.edu/sites/all/themes/oulib_bootstrap/img/ou_lib_logo.png)
246 |

Heading 1

247 |

Heading 2

248 |

Heading 3

249 |

Heading 4

250 |
Heading 5
251 |
Heading 6
252 |
# Heading 1
253 |           ## Heading 2
254 |           ### Heading 3
255 |           #### Heading 4
256 |           ##### Heading 5
257 |           ###### Heading 6
258 |
259 |

Blockquote

260 |
261 |
262 |
263 |

Nested blockquote

264 |
265 |
266 |
> Blockquote
267 | 
268 |           >> Nested Blockquote
269 |
270 |
---
271 |

Inline code with backticks

272 |
`Inline code` with backticks
273 |
// This is a codeblock
274 |           print("3 backticks or");
275 |           print("indent 4 spaces");
276 |
    // This is a codeblock
277 |               print("3 backticks or");
278 |               print("indent 4 spaces");
279 |
280 |
281 |
282 | 284 |
285 | 286 | 287 | 288 | -------------------------------------------------------------------------------- /htdocs/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability when focused and also mouse hovered in all browsers. 95 | */ 96 | 97 | a:active, 98 | a:hover { 99 | outline: 0; 100 | } 101 | 102 | /* Text-level semantics 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 107 | */ 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | } 112 | 113 | /** 114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 115 | */ 116 | 117 | b, 118 | strong { 119 | font-weight: bold; 120 | } 121 | 122 | /** 123 | * Address styling not present in Safari and Chrome. 124 | */ 125 | 126 | dfn { 127 | font-style: italic; 128 | } 129 | 130 | /** 131 | * Address variable `h1` font-size and margin within `section` and `article` 132 | * contexts in Firefox 4+, Safari, and Chrome. 133 | */ 134 | 135 | h1 { 136 | font-size: 2em; 137 | margin: 0.67em 0; 138 | } 139 | 140 | /** 141 | * Address styling not present in IE 8/9. 142 | */ 143 | 144 | mark { 145 | background: #ff0; 146 | color: #000; 147 | } 148 | 149 | /** 150 | * Address inconsistent and variable font size in all browsers. 151 | */ 152 | 153 | small { 154 | font-size: 80%; 155 | } 156 | 157 | /** 158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 159 | */ 160 | 161 | sub, 162 | sup { 163 | font-size: 75%; 164 | line-height: 0; 165 | position: relative; 166 | vertical-align: baseline; 167 | } 168 | 169 | sup { 170 | top: -0.5em; 171 | } 172 | 173 | sub { 174 | bottom: -0.25em; 175 | } 176 | 177 | /* Embedded content 178 | ========================================================================== */ 179 | 180 | /** 181 | * Remove border when inside `a` element in IE 8/9/10. 182 | */ 183 | 184 | img { 185 | border: 0; 186 | } 187 | 188 | /** 189 | * Correct overflow not hidden in IE 9/10/11. 190 | */ 191 | 192 | svg:not(:root) { 193 | overflow: hidden; 194 | } 195 | 196 | /* Grouping content 197 | ========================================================================== */ 198 | 199 | /** 200 | * Address margin not present in IE 8/9 and Safari. 201 | */ 202 | 203 | figure { 204 | margin: 1em 40px; 205 | } 206 | 207 | /** 208 | * Address differences between Firefox and other browsers. 209 | */ 210 | 211 | hr { 212 | -moz-box-sizing: content-box; 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 354 | * (include `-moz` to future-proof). 355 | */ 356 | 357 | input[type="search"] { 358 | -webkit-appearance: textfield; /* 1 */ 359 | -moz-box-sizing: content-box; 360 | -webkit-box-sizing: content-box; /* 2 */ 361 | box-sizing: content-box; 362 | } 363 | 364 | /** 365 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 366 | * Safari (but not Chrome) clips the cancel button when the search input has 367 | * padding (and `textfield` appearance). 368 | */ 369 | 370 | input[type="search"]::-webkit-search-cancel-button, 371 | input[type="search"]::-webkit-search-decoration { 372 | -webkit-appearance: none; 373 | } 374 | 375 | /** 376 | * Define consistent border, margin, and padding. 377 | */ 378 | 379 | fieldset { 380 | border: 1px solid #c0c0c0; 381 | margin: 0 2px; 382 | padding: 0.35em 0.625em 0.75em; 383 | } 384 | 385 | /** 386 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 387 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; /* 2 */ 393 | } 394 | 395 | /** 396 | * Remove default vertical scrollbar in IE 8/9/10/11. 397 | */ 398 | 399 | textarea { 400 | overflow: auto; 401 | } 402 | 403 | /** 404 | * Don't inherit the `font-weight` (applied by a rule above). 405 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 406 | */ 407 | 408 | optgroup { 409 | font-weight: bold; 410 | } 411 | 412 | /* Tables 413 | ========================================================================== */ 414 | 415 | /** 416 | * Remove most spacing between table cells. 417 | */ 418 | 419 | table { 420 | border-collapse: collapse; 421 | border-spacing: 0; 422 | } 423 | 424 | td, 425 | th { 426 | padding: 0; 427 | } -------------------------------------------------------------------------------- /htdocs/preview/acm.css: -------------------------------------------------------------------------------- 1 | @page { 2 | size: 8.5in 11in; 3 | margin: 0.75in 0.75in 1in 0.75in; 4 | 5 | @footnotes { 6 | columns: 2; 7 | margin-top: 2em; 8 | border-top: 0.5px solid #000000; 9 | padding-top: 1em; 10 | } 11 | } 12 | .acm body { 13 | -webkit-column-count: 2; 14 | -moz-column-count: 2; 15 | column-count: 2; 16 | -webkit-column-gap: balance; 17 | -moz-column-gap: balance; 18 | column-gap: balance; 19 | -webkit-column-gap: 0.33in; 20 | -moz-column-gap: 0.33in; 21 | column-gap: 0.33in; 22 | } 23 | .acm .footnote { 24 | float: prince-column-footnote; 25 | } 26 | .acm caption { 27 | caption-side: top; 28 | } 29 | .acm { 30 | font-size: 9pt; 31 | } 32 | .acm { 33 | font-family: "Times New Roman", Times, serif; 34 | text-align: justify; 35 | hyphens: auto; 36 | } 37 | .acm h1, 38 | .acm h2, 39 | .acm h3, 40 | .acm h4, 41 | .acm h5, 42 | .acm h6 { 43 | -webkit-column-break-after: avoid; 44 | column-break-after: avoid; 45 | break-after: avoid; 46 | font-family: "Times New Roman", Times, serif; 47 | font-weight: bold; 48 | hyphens: none; 49 | } 50 | .acm h1:not(.counter-skip):before, 51 | .acm h2:not(.counter-skip):before, 52 | .acm h3:not(.counter-skip):before, 53 | .acm h4:not(.counter-skip):before, 54 | .acm h5:not(.counter-skip):before, 55 | .acm h6:not(.counter-skip):before { 56 | margin-right: 0.5em; 57 | } 58 | .acm h1 { 59 | font-size: 1.33333333em; 60 | } 61 | .acm h2 { 62 | font-size: 1.33333333em; 63 | } 64 | .acm h3 { 65 | font-size: 1.22222222em; 66 | } 67 | .acm h4 { 68 | font-size: 1.22222222em; 69 | } 70 | .acm h5 { 71 | font-size: 1.22222222em; 72 | } 73 | .acm h6 { 74 | font-size: 1.22222222em; 75 | } 76 | .acm p { 77 | margin: 0 0 0.5em; 78 | line-height: 1.17; 79 | text-indent: 0; 80 | } 81 | .acm small { 82 | font-size: 0.77777778em; 83 | } 84 | .acm code { 85 | font-family: Courier, monospace; 86 | font-size: 0.88888889em; 87 | font-weight: 400; 88 | white-space: nowrap; 89 | } 90 | .acm q:before { 91 | content: "“"; 92 | } 93 | .acm q:after { 94 | content: "”"; 95 | } 96 | .acm q > q:before { 97 | content: "‘"; 98 | } 99 | .acm q > q:after { 100 | content: "’"; 101 | } 102 | .acm table { 103 | width: 100%; 104 | margin: 1.667em 0 1em; 105 | border-collapse: collapse; 106 | } 107 | .acm th, 108 | .acm td { 109 | padding: 0.333em; 110 | border: 0.5px solid #000000; 111 | text-align: center; 112 | } 113 | .acm caption { 114 | margin: 0 0 4pt; 115 | font-weight: bold; 116 | } 117 | .acm figure { 118 | margin: 1.333em 0 2.333em; 119 | text-align: center; 120 | } 121 | .acm figcaption { 122 | font-weight: bold; 123 | } 124 | .acm .footnote { 125 | margin-left: 0.333em; 126 | padding-left: 0.667em; 127 | } 128 | .acm .footnote::footnote-call { 129 | vertical-align: super; 130 | line-height: none; 131 | font-size: 66%; 132 | } 133 | .acm .footnote::footnote-marker { 134 | font-size: 66%; 135 | footnote-style-position: inside; 136 | } 137 | .acm cite { 138 | display: block; 139 | position: relative; 140 | margin-left: 2.5em; 141 | -webkit-column-break-inside: avoid; 142 | column-break-inside: avoid; 143 | break-inside: avoid; 144 | font-style: normal; 145 | text-align: left; 146 | } 147 | .acm cite:before { 148 | position: absolute; 149 | display: inline-block; 150 | margin-left: -2.5em; 151 | } 152 | .acm cite a { 153 | text-decoration: none; 154 | } 155 | .acm a[href^="#"] { 156 | color: inherit; 157 | text-decoration: none; 158 | } 159 | @page { 160 | 161 | } 162 | .acm body > :first-child { 163 | counter-reset: page 1; 164 | } 165 | .acm h1:not(.counter-skip) { 166 | counter-increment: section; 167 | } 168 | .acm h2:not(.counter-skip) { 169 | counter-increment: subsection; 170 | } 171 | .acm h3:not(.counter-skip) { 172 | counter-increment: subsubsection; 173 | } 174 | .acm h4:not(.counter-skip) { 175 | counter-increment: subsubsection; 176 | } 177 | .acm h5:not(.counter-skip) { 178 | counter-increment: subsubsubsection; 179 | } 180 | .acm h6:not(.counter-skip) { 181 | counter-increment: subsubsubsubsection; 182 | } 183 | .acm h1.counter-reset { 184 | counter-reset: section; 185 | } 186 | .acm h2.counter-reset { 187 | counter-reset: subsection; 188 | } 189 | .acm h3.counter-reset { 190 | counter-reset: subsubsection; 191 | } 192 | .acm h4.counter-reset { 193 | counter-reset: subsubsection; 194 | } 195 | .acm h5.counter-reset { 196 | counter-reset: subsubsubsection; 197 | } 198 | .acm h6.counter-reset { 199 | counter-reset: subsubsubsubsection; 200 | } 201 | .acm h1:not(.counter-skip):before { 202 | content: "" counter(section, decimal) ""; 203 | } 204 | .acm h2:not(.counter-skip):before { 205 | content: "" counter(section, decimal) '.' counter(subsection, decimal) ""; 206 | } 207 | .acm h3:not(.counter-skip):before { 208 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) ""; 209 | } 210 | .acm h4:not(.counter-skip):before { 211 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) ""; 212 | } 213 | .acm h5:not(.counter-skip):before { 214 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsubsection, decimal) ""; 215 | } 216 | .acm h6:not(.counter-skip):before { 217 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsubsection, decimal) '.' counter(subsubsubsubsection, decimal) ""; 218 | } 219 | .acm table { 220 | counter-increment: table; 221 | } 222 | .acm caption:before { 223 | content: "Table " counter(table) ". "; 224 | } 225 | .acm figure { 226 | counter-increment: figure; 227 | } 228 | .acm figcaption:before { 229 | content: "Figure " counter(figure) ". "; 230 | } 231 | .acm .footnote { 232 | counter-increment: footnote; 233 | } 234 | .acm .footnote::footnote-call { 235 | content: counter(footnote); 236 | } 237 | .acm .footnote::footnote-marker { 238 | content: counter(footnote); 239 | } 240 | .acm a[href^="#"] { 241 | content: target-counter(attr(href, url), reference); 242 | } 243 | .acm a[href^="#"]:before { 244 | content: "["; 245 | } 246 | .acm a[href^="#"]:after { 247 | content: "]"; 248 | } 249 | .acm a[href^="#"].section { 250 | content: target-counter(attr(href, url), section); 251 | } 252 | .acm a[href^="#"].section:before { 253 | content: ""; 254 | } 255 | .acm a[href^="#"].section:after { 256 | content: ""; 257 | } 258 | .acm a[href^="#"].subsection { 259 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection); 260 | } 261 | .acm a[href^="#"].subsection:before { 262 | content: ""; 263 | } 264 | .acm a[href^="#"].subsection:after { 265 | content: ""; 266 | } 267 | .acm a[href^="#"].subsubsection { 268 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection); 269 | } 270 | .acm a[href^="#"].subsubsection:before { 271 | content: ""; 272 | } 273 | .acm a[href^="#"].subsubsection:after { 274 | content: ""; 275 | } 276 | .acm a[href^="#"].subsubsubsection { 277 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection) "." target-counter(attr(href, url), subsubsubsection); 278 | } 279 | .acm a[href^="#"].subsubsubsection:before { 280 | content: ""; 281 | } 282 | .acm a[href^="#"].subsubsubsection:after { 283 | content: ""; 284 | } 285 | .acm a[href^="#"].figure { 286 | content: target-counter(attr(href, url), figure); 287 | } 288 | .acm a[href^="#"].figure:before { 289 | content: "Figure "; 290 | } 291 | .acm a[href^="#"].figure:after { 292 | content: ""; 293 | } 294 | .acm a[href^="#"].table { 295 | content: target-counter(attr(href, url), table); 296 | } 297 | .acm a[href^="#"].table:before { 298 | content: "Table "; 299 | } 300 | .acm a[href^="#"].table:after { 301 | content: ""; 302 | } 303 | .acm .cites > :not(:first-child):before { 304 | content: none; 305 | } 306 | .acm .cites > :not(:last-child):after { 307 | content: ", "; 308 | } 309 | .acm cite { 310 | counter-increment: reference; 311 | } 312 | .acm cite:before { 313 | content: "[" counter(reference) "]"; 314 | } 315 | .acm .col-1 { 316 | -webkit-column-count: 1; 317 | -moz-column-count: 1; 318 | column-count: 1; 319 | } 320 | .acm .col-2 { 321 | -webkit-column-count: 2; 322 | -moz-column-count: 2; 323 | column-count: 2; 324 | } 325 | .acm .col-3 { 326 | -webkit-column-count: 3; 327 | -moz-column-count: 3; 328 | column-count: 3; 329 | } 330 | .acm .col-4 { 331 | -webkit-column-count: 4; 332 | -moz-column-count: 4; 333 | column-count: 4; 334 | } 335 | .acm .col-span { 336 | -webkit-column-span: all; 337 | -moz-column-span: all; 338 | column-span: all; 339 | } 340 | .acm .page-break-after { 341 | -webkit-column-break-after: always; 342 | column-break-after: always; 343 | break-after: always; 344 | } 345 | .acm .page-break-before { 346 | -webkit-column-break-after: always; 347 | column-break-after: always; 348 | break-after: always; 349 | } 350 | .acm .col-break-after { 351 | -webkit-column-break-after: always; 352 | column-break-after: always; 353 | break-after: always; 354 | } 355 | .acm .col-break-before { 356 | -webkit-column-break-after: always; 357 | column-break-after: always; 358 | break-after: always; 359 | } 360 | .acm .counter-skip h1:before, 361 | .acm .counter-skip h2:before, 362 | .acm .counter-skip h3:before, 363 | .acm .counter-skip h4:before, 364 | .acm .counter-skip h5:before, 365 | .acm .counter-skip h6:before, 366 | .acm .counter-skip:before { 367 | margin-right: 0 !important; 368 | content: "" !important; 369 | } 370 | .acm h1, 371 | .acm h2 { 372 | margin: 1.33333333em 0 0 0; 373 | } 374 | .acm h1 { 375 | text-transform: uppercase; 376 | } 377 | .acm h1:not(.counter-skip):before { 378 | content: "" counter(section) "."; 379 | } 380 | .acm h1 + h2, 381 | .acm h1 + * > h2:first-child { 382 | margin-top: 0; 383 | } 384 | .acm h3, 385 | .acm h4 { 386 | margin: 1.33333333em 0 0 0; 387 | font-style: italic; 388 | font-weight: normal; 389 | } 390 | .acm header { 391 | column-span: all; 392 | margin-bottom: 4em; 393 | font-family: Helvetica, sans-serif; 394 | } 395 | .acm header h2 { 396 | margin: 2em 0; 397 | font-size: 1.333em; 398 | font-weight: normal; 399 | text-align: center; 400 | } 401 | .acm .title { 402 | margin: 0 0 0.333em; 403 | font-family: Helvetica, sans-serif; 404 | font-size: 18pt; 405 | text-align: center; 406 | text-transform: none; 407 | -webkit-column-span: all; 408 | -moz-column-span: all; 409 | column-span: all; 410 | } 411 | .acm .authors { 412 | -webkit-column-gap: 0; 413 | -moz-column-gap: 0; 414 | column-gap: 0; 415 | } 416 | .acm .authors + .authors { 417 | margin-top: 6pt; 418 | } 419 | .acm .author { 420 | -webkit-column-break-inside: avoid; 421 | column-break-inside: avoid; 422 | break-inside: avoid; 423 | -webkit-column-break-after: always; 424 | column-break-after: always; 425 | break-after: always; 426 | text-align: center; 427 | font-size: 10pt; 428 | } 429 | .acm .author a { 430 | color: inherit; 431 | text-decoration: none; 432 | } 433 | .acm .author > :first-child, 434 | .acm .author > :last-child { 435 | font-size: 12pt; 436 | } 437 | .acm .copyright { 438 | height: 1.5in; 439 | float: column-bottom; 440 | font-size: 8pt; 441 | } 442 | .acm .copyright > * { 443 | position: absolute; 444 | left: 0; 445 | bottom: 0; 446 | width: 3.333in; 447 | } 448 | .acm cite { 449 | margin-bottom: 0.333em; 450 | text-align: left; 451 | } 452 | .acm cite a { 453 | text-decoration: none; 454 | } 455 | .acm .appendix { 456 | counter-reset: section; 457 | } 458 | .acm .appendix h1:not(.counter-skip):before { 459 | content: "" counter(section, upper-alpha) ""; 460 | } 461 | .acm .appendix h2:not(.counter-skip):before { 462 | content: "" counter(section, upper-alpha) '.' counter(subsection, decimal) ""; 463 | } 464 | .acm .appendix h3:not(.counter-skip):before { 465 | content: "" counter(section, upper-alpha) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) ""; 466 | } 467 | .acm .equation { 468 | margin: 3pt 0; 469 | text-align: center; 470 | } 471 | .acm .equation:not(.displaymath) { 472 | position: relative; 473 | counter-increment: equation; 474 | } 475 | .acm .equation:not(.displaymath):after { 476 | content: "(" counter(equation) ")"; 477 | position: absolute; 478 | top: 50%; 479 | right: 0; 480 | bottom: 50%; 481 | line-height: 0; 482 | } 483 | .acm .theorem, 484 | .acm .proof, 485 | .acm .definition { 486 | margin: 12pt 0; 487 | } 488 | .acm .theorem:before, 489 | .acm .proof:before, 490 | .acm .definition:before { 491 | margin-left: 9pt; 492 | } 493 | .acm .theorem { 494 | font-style: italic; 495 | } 496 | .acm .theorem:before { 497 | counter-increment: theorem; 498 | content: "Theorem " counter(theorem) ". "; 499 | font-style: normal; 500 | font-variant: small-caps; 501 | } 502 | .acm .proof:before { 503 | counter-increment: proof; 504 | content: "Proof " counter(proof) ". "; 505 | font-style: normal; 506 | font-variant: small-caps; 507 | } 508 | .acm .definition:before { 509 | counter-increment: definition; 510 | content: "Definition " counter(definition) ". "; 511 | font-style: italic; 512 | } 513 | @media screen { 514 | .authors { 515 | -webkit-column-count: 3; 516 | -moz-column-count: 3; 517 | column-count: 3; 518 | } 519 | .copyright { 520 | display: none; 521 | } 522 | } 523 | -------------------------------------------------------------------------------- /htdocs/preview/getaway.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Six Caps'; 3 | src: url(https://fonts.googleapis.com/css?family=Six+Caps:400' rel='stylesheet' type='text/css); 4 | } 5 | @font-face { 6 | font-family: 'Merriweather'; 7 | src: url(https://fonts.googleapis.com/css?family=Merriweather:400,400italic,900' rel='stylesheet' type='text/css' rel='stylesheet' type='text/css); 8 | } 9 | 10 | .getaway h1 { 11 | color: #67BE9B; 12 | font-family: 'Six Caps'; 13 | font-size: 50px; 14 | font-weight: 400; 15 | line-height: 50px; 16 | letter-spacing: 10px; 17 | margin-bottom: 20px; 18 | text-indent: 0px; 19 | text-transform: uppercase; 20 | } 21 | 22 | .getaway p { 23 | color: #54534F; 24 | font-family: 'Merriweather'; 25 | font-size: 18px; 26 | font-weight: 500; 27 | line-height: 24px; 28 | margin-bottom: 12px; 29 | } 30 | 31 | .getaway a { 32 | color: #D8B445; border-bottom: 2px solid #D8B445; 33 | font-style: italic; 34 | text-decoration: none; 35 | } 36 | 37 | .getaway a:hover { 38 | color: #54534F; 39 | } 40 | -------------------------------------------------------------------------------- /htdocs/preview/ieee.css: -------------------------------------------------------------------------------- 1 | 2 | @page { 3 | size: 8.5in 11in; 4 | margin: 0.75in 0.62in 1in 0.62in; 5 | 6 | @footnotes { 7 | columns: 2; 8 | margin-top: 1em; 9 | border-top: 0.5px solid #000000; 10 | padding-top: 3pt; 11 | } 12 | } 13 | .ieee body { 14 | -webkit-column-count: 1; 15 | -moz-column-count: 2; 16 | column-count: 1; 17 | -webkit-column-gap: balance; 18 | -moz-column-gap: balance; 19 | column-gap: balance; 20 | -webkit-column-gap: 0.33in; 21 | -moz-column-gap: 0.33in; 22 | column-gap: 0.33in; 23 | } 24 | .ieee .footnote { 25 | float: prince-column-footnote; 26 | } 27 | .ieee caption { 28 | caption-side: top; 29 | } 30 | .ieee { 31 | font-size: 10pt; 32 | } 33 | .ieee { 34 | font-family: "Times New Roman", Times, serif; 35 | text-align: justify; 36 | hyphens: none; 37 | } 38 | .ieee h1, 39 | .ieee h2, 40 | .ieee h3, 41 | .ieee h4, 42 | .ieee h5, 43 | .ieee h6 { 44 | -webkit-column-break-after: avoid; 45 | column-break-after: avoid; 46 | break-after: avoid; 47 | font-family: "Times New Roman", Times, serif; 48 | font-weight: bold; 49 | hyphens: none; 50 | } 51 | .ieee h1:not(.counter-skip):before, 52 | .ieee h2:not(.counter-skip):before, 53 | .ieee h3:not(.counter-skip):before, 54 | .ieee h4:not(.counter-skip):before, 55 | .ieee h5:not(.counter-skip):before, 56 | .ieee h6:not(.counter-skip):before { 57 | margin-right: 0.5em; 58 | } 59 | .ieee h1 { 60 | font-size: 10pt; 61 | } 62 | .ieee h2 { 63 | font-size: 10pt; 64 | } 65 | .ieee h3 { 66 | font-size: 10pt; 67 | } 68 | .ieee h4 { 69 | font-size: 10pt; 70 | } 71 | .ieee h5 { 72 | font-size: 10pt; 73 | } 74 | .ieee h6 { 75 | font-size: 10pt; 76 | } 77 | .ieee p { 78 | margin: 0 0 0.5em; 79 | line-height: 1.1; 80 | text-indent: 1.5em; 81 | } 82 | .ieee small { 83 | font-size: 8pt; 84 | } 85 | .ieee code { 86 | font-family: Courier, monospace; 87 | font-size: 8pt; 88 | font-weight: 400; 89 | white-space: nowrap; 90 | } 91 | .ieee q:before { 92 | content: "“"; 93 | } 94 | .ieee q:after { 95 | content: "”"; 96 | } 97 | .ieee q > q:before { 98 | content: "‘"; 99 | } 100 | .ieee q > q:after { 101 | content: "’"; 102 | } 103 | .ieee table { 104 | width: 100%; 105 | margin: 1.667em 0 1em; 106 | border-collapse: collapse; 107 | } 108 | .ieee th, 109 | .ieee td { 110 | padding: 0.333em; 111 | border: 0.5px solid #000000; 112 | text-align: center; 113 | } 114 | .ieee caption { 115 | margin: 0 0 4pt; 116 | font-weight: bold; 117 | } 118 | .ieee figure { 119 | margin: 1.333em 0 2.333em; 120 | text-align: center; 121 | } 122 | .ieee figcaption { 123 | font-weight: bold; 124 | } 125 | .ieee .footnote { 126 | margin-left: 0.333em; 127 | padding-left: 0.667em; 128 | } 129 | .ieee .footnote::footnote-call { 130 | vertical-align: super; 131 | line-height: none; 132 | font-size: 66%; 133 | } 134 | .ieee .footnote::footnote-marker { 135 | font-size: 66%; 136 | footnote-style-position: inside; 137 | } 138 | .ieee cite { 139 | display: block; 140 | position: relative; 141 | margin-left: 2.5em; 142 | -webkit-column-break-inside: avoid; 143 | column-break-inside: avoid; 144 | break-inside: avoid; 145 | font-style: normal; 146 | text-align: left; 147 | } 148 | .ieee cite:before { 149 | position: absolute; 150 | display: inline-block; 151 | margin-left: -2.5em; 152 | } 153 | .ieee cite a { 154 | text-decoration: none; 155 | } 156 | .ieee a[href^="#"] { 157 | color: inherit; 158 | text-decoration: none; 159 | } 160 | @page { 161 | 162 | } 163 | .ieee body > :first-child { 164 | counter-reset: page 1; 165 | } 166 | .ieee h1:not(.counter-skip) { 167 | counter-increment: section; 168 | } 169 | .ieee h2:not(.counter-skip) { 170 | counter-increment: subsection; 171 | } 172 | .ieee h3:not(.counter-skip) { 173 | counter-increment: subsubsection; 174 | } 175 | .ieee h4:not(.counter-skip) { 176 | counter-increment: subsubsection; 177 | } 178 | .ieee h5:not(.counter-skip) { 179 | counter-increment: subsubsubsection; 180 | } 181 | .ieee h6:not(.counter-skip) { 182 | counter-increment: subsubsubsubsection; 183 | } 184 | .ieee h1.counter-reset { 185 | counter-reset: section; 186 | } 187 | .ieee h2.counter-reset { 188 | counter-reset: subsection; 189 | } 190 | .ieee h3.counter-reset { 191 | counter-reset: subsubsection; 192 | } 193 | .ieee h4.counter-reset { 194 | counter-reset: subsubsection; 195 | } 196 | .ieee h5.counter-reset { 197 | counter-reset: subsubsubsection; 198 | } 199 | .ieee h6.counter-reset { 200 | counter-reset: subsubsubsubsection; 201 | } 202 | .ieee h1:not(.counter-skip):before { 203 | content: "" counter(section, upper-roman) "."; 204 | } 205 | .ieee h2:not(.counter-skip):before { 206 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) "."; 207 | } 208 | .ieee h3:not(.counter-skip):before { 209 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) "."; 210 | } 211 | .ieee h4:not(.counter-skip):before { 212 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) "."; 213 | } 214 | .ieee h5:not(.counter-skip):before { 215 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) '.' counter(subsubsubsection, upper-roman) "."; 216 | } 217 | .ieee h6:not(.counter-skip):before { 218 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) '.' counter(subsubsubsection, upper-roman) '.' counter(subsubsubsubsection, upper-roman) "."; 219 | } 220 | .ieee table { 221 | counter-increment: table; 222 | } 223 | .ieee caption:before { 224 | content: "Table " counter(table) ". "; 225 | } 226 | .ieee figure { 227 | counter-increment: figure; 228 | } 229 | .ieee figcaption:before { 230 | content: "Fig. " counter(figure) ". "; 231 | } 232 | .ieee .footnote { 233 | counter-increment: footnote; 234 | } 235 | .ieee .footnote::footnote-call { 236 | content: counter(footnote); 237 | } 238 | .ieee .footnote::footnote-marker { 239 | content: counter(footnote); 240 | } 241 | .ieee a[href^="#"] { 242 | content: target-counter(attr(href, url), reference); 243 | } 244 | .ieee a[href^="#"]:before { 245 | content: "["; 246 | } 247 | .ieee a[href^="#"]:after { 248 | content: "]"; 249 | } 250 | .ieee a[href^="#"].section { 251 | content: target-counter(attr(href, url), section); 252 | } 253 | .ieee a[href^="#"].section:before { 254 | content: ""; 255 | } 256 | .ieee a[href^="#"].section:after { 257 | content: ""; 258 | } 259 | .ieee a[href^="#"].subsection { 260 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection); 261 | } 262 | .ieee a[href^="#"].subsection:before { 263 | content: ""; 264 | } 265 | .ieee a[href^="#"].subsection:after { 266 | content: ""; 267 | } 268 | .ieee a[href^="#"].subsubsection { 269 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection); 270 | } 271 | .ieee a[href^="#"].subsubsection:before { 272 | content: ""; 273 | } 274 | .ieee a[href^="#"].subsubsection:after { 275 | content: ""; 276 | } 277 | .ieee a[href^="#"].subsubsubsection { 278 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection) "." target-counter(attr(href, url), subsubsubsection); 279 | } 280 | .ieee a[href^="#"].subsubsubsection:before { 281 | content: ""; 282 | } 283 | .ieee a[href^="#"].subsubsubsection:after { 284 | content: ""; 285 | } 286 | .ieee a[href^="#"].figure { 287 | content: target-counter(attr(href, url), figure); 288 | } 289 | .ieee a[href^="#"].figure:before { 290 | content: "Fig. "; 291 | } 292 | .ieee a[href^="#"].figure:after { 293 | content: ""; 294 | } 295 | .ieee a[href^="#"].table { 296 | content: target-counter(attr(href, url), table); 297 | } 298 | .ieee a[href^="#"].table:before { 299 | content: "Table "; 300 | } 301 | .ieee a[href^="#"].table:after { 302 | content: ""; 303 | } 304 | .ieee .cites > :not(:first-child):before { 305 | content: none; 306 | } 307 | .ieee .cites > :not(:last-child):after { 308 | content: ", "; 309 | } 310 | .ieee cite { 311 | counter-increment: reference; 312 | } 313 | .ieee cite:before { 314 | content: "[" counter(reference) "]"; 315 | } 316 | .ieee .col-1 { 317 | -webkit-column-count: 1; 318 | -moz-column-count: 1; 319 | column-count: 1; 320 | } 321 | .ieee .col-2 { 322 | -webkit-column-count: 2; 323 | -moz-column-count: 2; 324 | column-count: 2; 325 | } 326 | .ieee .col-3 { 327 | -webkit-column-count: 3; 328 | -moz-column-count: 3; 329 | column-count: 3; 330 | } 331 | .ieee .col-4 { 332 | -webkit-column-count: 4; 333 | -moz-column-count: 4; 334 | column-count: 4; 335 | } 336 | .ieee .col-span { 337 | -webkit-column-span: all; 338 | -moz-column-span: all; 339 | column-span: all; 340 | } 341 | .ieee .page-break-after { 342 | -webkit-column-break-after: always; 343 | column-break-after: always; 344 | break-after: always; 345 | } 346 | .ieee .page-break-before { 347 | -webkit-column-break-after: always; 348 | column-break-after: always; 349 | break-after: always; 350 | } 351 | .ieee .col-break-after { 352 | -webkit-column-break-after: always; 353 | column-break-after: always; 354 | break-after: always; 355 | } 356 | .ieee .col-break-before { 357 | -webkit-column-break-after: always; 358 | column-break-after: always; 359 | break-after: always; 360 | } 361 | .ieee .counter-skip h1:before, 362 | .ieee .counter-skip h2:before, 363 | .ieee .counter-skip h3:before, 364 | .ieee .counter-skip h4:before, 365 | .ieee .counter-skip h5:before, 366 | .ieee .counter-skip h6:before, 367 | .ieee .counter-skip:before { 368 | margin-right: 0 !important; 369 | content: "" !important; 370 | } 371 | .ieee .abstract { 372 | font-size: 9pt; 373 | font-weight: bold; 374 | } 375 | .ieee .abstract p { 376 | margin-bottom: 12pt; 377 | } 378 | .ieee h1, 379 | .ieee h2, 380 | .ieee h3, 381 | .ieee h4, 382 | .ieee h5, 383 | .ieee h6 { 384 | font-weight: normal; 385 | } 386 | .ieee h1, 387 | .ieee h5 { 388 | margin-bottom: 4pt; 389 | font-variant: small-caps; 390 | text-align: center; 391 | } 392 | .ieee h3 { 393 | text-indent: 1.5em; 394 | } 395 | .ieee h4 { 396 | text-indent: 2.25em; 397 | } 398 | .ieee h2 { 399 | margin-bottom: 2pt; 400 | font-style: italic; 401 | } 402 | .ieee h3, 403 | .ieee h4, 404 | .ieee h5 { 405 | page-break-after: auto; 406 | } 407 | .ieee h2:not(.counter-skip):before { 408 | content: "" counter(subsection, upper-alpha) "."; 409 | } 410 | .ieee h5:not(.counter-skip):before { 411 | content: none; 412 | } 413 | .ieee h1 + h2, 414 | .ieee h1 + * > h2:first-child { 415 | margin-top: 10pt; 416 | } 417 | .ieee h3, 418 | .ieee h4 { 419 | margin: 10pt 0 0 0; 420 | font-style: italic; 421 | } 422 | .ieee ul { 423 | margin-left: 2.5em; 424 | } 425 | .ieee li { 426 | margin-bottom: 6pt; 427 | } 428 | .ieee ol { 429 | list-style: none; 430 | counter-reset: ol; 431 | margin-left: 0; 432 | text-indent: 1.5em; 433 | } 434 | .ieee ol > li:before { 435 | counter-increment: ol; 436 | content: counter(ol, decimal) ") "; 437 | font-style: italic; 438 | } 439 | .ieee ol ol { 440 | text-indent: 3em; 441 | } 442 | .ieee ol ol > li:before { 443 | counter-increment: ol; 444 | content: counter(ol, lower-alpha) ") "; 445 | } 446 | .ieee .title { 447 | margin-bottom: 5pt; 448 | font-size: 24pt; 449 | font-variant: normal; 450 | } 451 | .ieee .subtitle { 452 | margin-top: 0; 453 | margin-bottom: 35pt; 454 | font-size: 14pt; 455 | font-style: normal; 456 | font-weight: normal; 457 | text-align: center; 458 | } 459 | .ieee header { 460 | column-span: all; 461 | margin-bottom: 22pt; 462 | } 463 | .ieee table { 464 | font-size: 8pt; 465 | } 466 | .ieee caption, 467 | .ieee figcaption { 468 | font-size: 8pt; 469 | font-weight: normal; 470 | } 471 | .ieee caption { 472 | font-variant: small-caps; 473 | } 474 | .ieee figcaption { 475 | text-align: left; 476 | } 477 | .ieee .footnote { 478 | font-size: 8pt; 479 | } 480 | .ieee .footnote { 481 | margin-bottom: -0.38in; 482 | font-size: 8pt; 483 | font-weight: normal; 484 | } 485 | .ieee .footnote::footnote-call, 486 | .ieee .footnote::footnote-marker { 487 | display: none; 488 | content: none; 489 | } 490 | .ieee .authors { 491 | column-gap: 0; 492 | } 493 | .ieee .authors + .authors { 494 | margin-top: 6pt; 495 | } 496 | .ieee .author { 497 | break-inside: avoid; 498 | column-break-after: always; 499 | text-align: center; 500 | } 501 | .ieee .author > :first-child { 502 | font-size: 11pt; 503 | } 504 | .ieee .equation { 505 | margin: 12pt 0 8pt; 506 | text-align: center; 507 | } 508 | .ieee .equation:not(.displaymath) { 509 | position: relative; 510 | counter-increment: equation; 511 | } 512 | .ieee .equation:not(.displaymath):after { 513 | content: "(" counter(equation) ")"; 514 | position: absolute; 515 | top: 50%; 516 | right: 0; 517 | bottom: 50%; 518 | line-height: 0; 519 | } 520 | .ieee .references { 521 | margin-top: 18pt; 522 | } 523 | .ieee h1.references { 524 | margin-top: 24pt; 525 | } 526 | .ieee cite { 527 | margin-bottom: 3pt; 528 | font-size: 8pt; 529 | text-align: left; 530 | } 531 | -------------------------------------------------------------------------------- /htdocs/preview/typebase.css: -------------------------------------------------------------------------------- 1 | /*! Typebase.less v0.1.0 | MIT License */ 2 | /* Setup */ 3 | .typebase { 4 | /* Change default typefaces here */ 5 | font-family: sans-serif; 6 | font-size: 137.5%; 7 | -webkit-font-smoothing: antialiased; 8 | } 9 | /* Copy & Lists */ 10 | .typebase p { 11 | line-height: 2.25rem; 12 | margin-top: 1.5rem; 13 | margin-bottom: 0; 14 | } 15 | .typebase ul, 16 | .typebase ol { 17 | margin-top: 1.5rem; 18 | margin-bottom: 1.5rem; 19 | } 20 | .typebase ul li, 21 | .typebase ol li { 22 | line-height: 1.5rem; 23 | } 24 | .typebase ul ul, 25 | .typebase ol ul, 26 | .typebase ul ol, 27 | .typebase ol ol { 28 | margin-top: 0; 29 | margin-bottom: 0; 30 | } 31 | .typebase blockquote { 32 | line-height: 1.5rem; 33 | margin-top: 1.5rem; 34 | margin-bottom: 1.5rem; 35 | } 36 | /* Headings */ 37 | .typebase h1, 38 | .typebase h2, 39 | .typebase h3, 40 | .typebase h4, 41 | .typebase h5, 42 | .typebase h6 { 43 | /* Change heading typefaces here */ 44 | font-family: sans-serif; 45 | margin-top: 1.5rem; 46 | margin-bottom: 0; 47 | line-height: 1.5rem; 48 | } 49 | .typebase h1 { 50 | font-size: 4.242rem; 51 | line-height: 4.5rem; 52 | margin-top: 3rem; 53 | } 54 | .typebase h2 { 55 | font-size: 2.828rem; 56 | line-height: 3rem; 57 | margin-top: 3rem; 58 | } 59 | .typebase h3 { 60 | font-size: 1.414rem; 61 | } 62 | .typebase h4 { 63 | font-size: 0.707rem; 64 | } 65 | .typebase h5 { 66 | font-size: 0.4713333333333333rem; 67 | } 68 | .typebase h6 { 69 | font-size: 0.3535rem; 70 | } 71 | /* Tables */ 72 | .typebase table { 73 | margin-top: 1.5rem; 74 | border-spacing: 0px; 75 | border-collapse: collapse; 76 | } 77 | .typebase table td, 78 | .typebase table th { 79 | padding: 0; 80 | line-height: 33px; 81 | } 82 | /* Code blocks */ 83 | .typebase code { 84 | vertical-align: bottom; 85 | } 86 | /* Leading paragraph text */ 87 | .typebase .lead { 88 | font-size: 1.414rem; 89 | } 90 | /* Hug the block above you */ 91 | .typebase .hug { 92 | margin-top: 0; 93 | } 94 | -------------------------------------------------------------------------------- /htdocs/print.css: -------------------------------------------------------------------------------- 1 | 81 | -------------------------------------------------------------------------------- /htdocs/skeleton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skeleton V2.0.4 3 | * Copyright 2014, Dave Gamache 4 | * www.getskeleton.com 5 | * Free to use under the MIT license. 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * 12/29/2014 8 | */ 9 | 10 | 11 | /* Table of contents 12 | –––––––––––––––––––––––––––––––––––––––––––––––––– 13 | - Grid 14 | - Base Styles 15 | - Typography 16 | - Links 17 | - Buttons 18 | - Forms 19 | - Lists 20 | - Code 21 | - Tables 22 | - Spacing 23 | - Utilities 24 | - Clearing 25 | - Media Queries 26 | */ 27 | 28 | 29 | /* Grid 30 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 31 | .container { 32 | position: relative; 33 | width: 100%; 34 | max-width: 960px; 35 | margin: 0 auto; 36 | padding: 0 20px; 37 | box-sizing: border-box; } 38 | .column, 39 | .columns { 40 | width: 100%; 41 | float: left; 42 | box-sizing: border-box; } 43 | 44 | /* For devices larger than 400px */ 45 | @media (min-width: 400px) { 46 | .container { 47 | width: 85%; 48 | padding: 0; } 49 | } 50 | 51 | /* For devices larger than 550px */ 52 | @media (min-width: 550px) { 53 | .container { 54 | width: 80%; } 55 | .column, 56 | .columns { 57 | margin-left: 4%; } 58 | .column:first-child, 59 | .columns:first-child { 60 | margin-left: 0; } 61 | 62 | .one.column, 63 | .one.columns { width: 4.66666666667%; } 64 | .two.columns { width: 13.3333333333%; } 65 | .three.columns { width: 22%; } 66 | .four.columns { width: 30.6666666667%; } 67 | .five.columns { width: 39.3333333333%; } 68 | .six.columns { width: 48%; } 69 | .seven.columns { width: 56.6666666667%; } 70 | .eight.columns { width: 65.3333333333%; } 71 | .nine.columns { width: 74.0%; } 72 | .ten.columns { width: 82.6666666667%; } 73 | .eleven.columns { width: 91.3333333333%; } 74 | .twelve.columns { width: 100%; margin-left: 0; } 75 | 76 | .one-third.column { width: 30.6666666667%; } 77 | .two-thirds.column { width: 65.3333333333%; } 78 | 79 | .one-half.column { width: 48%; } 80 | 81 | /* Offsets */ 82 | .offset-by-one.column, 83 | .offset-by-one.columns { margin-left: 8.66666666667%; } 84 | .offset-by-two.column, 85 | .offset-by-two.columns { margin-left: 17.3333333333%; } 86 | .offset-by-three.column, 87 | .offset-by-three.columns { margin-left: 26%; } 88 | .offset-by-four.column, 89 | .offset-by-four.columns { margin-left: 34.6666666667%; } 90 | .offset-by-five.column, 91 | .offset-by-five.columns { margin-left: 43.3333333333%; } 92 | .offset-by-six.column, 93 | .offset-by-six.columns { margin-left: 52%; } 94 | .offset-by-seven.column, 95 | .offset-by-seven.columns { margin-left: 60.6666666667%; } 96 | .offset-by-eight.column, 97 | .offset-by-eight.columns { margin-left: 69.3333333333%; } 98 | .offset-by-nine.column, 99 | .offset-by-nine.columns { margin-left: 78.0%; } 100 | .offset-by-ten.column, 101 | .offset-by-ten.columns { margin-left: 86.6666666667%; } 102 | .offset-by-eleven.column, 103 | .offset-by-eleven.columns { margin-left: 95.3333333333%; } 104 | 105 | .offset-by-one-third.column, 106 | .offset-by-one-third.columns { margin-left: 34.6666666667%; } 107 | .offset-by-two-thirds.column, 108 | .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } 109 | 110 | .offset-by-one-half.column, 111 | .offset-by-one-half.columns { margin-left: 52%; } 112 | 113 | } 114 | 115 | 116 | /* Base Styles 117 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 118 | /* NOTE 119 | html is set to 62.5% so that all the REM measurements throughout Skeleton 120 | are based on 10px sizing. So basically 1.5rem = 15px :) */ 121 | html { 122 | font-size: 62.5%; } 123 | body { 124 | font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ 125 | line-height: 1.6; 126 | font-weight: 400; 127 | font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; 128 | color: #222; } 129 | 130 | 131 | /* Typography 132 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 133 | h1, h2, h3, h4, h5, h6 { 134 | margin-top: 0; 135 | margin-bottom: 2rem; 136 | font-weight: 300; } 137 | h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} 138 | h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } 139 | h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } 140 | h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } 141 | h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } 142 | h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } 143 | 144 | /* Larger than phablet */ 145 | @media (min-width: 550px) { 146 | h1 { font-size: 5.0rem; } 147 | h2 { font-size: 4.2rem; } 148 | h3 { font-size: 3.6rem; } 149 | h4 { font-size: 3.0rem; } 150 | h5 { font-size: 2.4rem; } 151 | h6 { font-size: 1.5rem; } 152 | } 153 | 154 | p { 155 | margin-top: 0; } 156 | 157 | 158 | /* Links 159 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 160 | a { 161 | color: #1EAEDB; } 162 | a:hover { 163 | color: #0FA0CE; } 164 | 165 | 166 | /* Buttons 167 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 168 | .button, 169 | button, 170 | input[type="submit"], 171 | input[type="reset"], 172 | input[type="button"] { 173 | display: inline-block; 174 | height: 38px; 175 | padding: 0 30px; 176 | color: #555; 177 | text-align: center; 178 | font-size: 11px; 179 | font-weight: 600; 180 | line-height: 38px; 181 | letter-spacing: .1rem; 182 | text-transform: uppercase; 183 | text-decoration: none; 184 | white-space: nowrap; 185 | background-color: transparent; 186 | border-radius: 4px; 187 | border: 1px solid #bbb; 188 | cursor: pointer; 189 | box-sizing: border-box; } 190 | .button:hover, 191 | button:hover, 192 | input[type="submit"]:hover, 193 | input[type="reset"]:hover, 194 | input[type="button"]:hover, 195 | .button:focus, 196 | button:focus, 197 | input[type="submit"]:focus, 198 | input[type="reset"]:focus, 199 | input[type="button"]:focus { 200 | color: #333; 201 | border-color: #888; 202 | outline: 0; } 203 | .button.button-primary, 204 | button.button-primary, 205 | input[type="submit"].button-primary, 206 | input[type="reset"].button-primary, 207 | input[type="button"].button-primary { 208 | color: #FFF; 209 | background-color: #33C3F0; 210 | border-color: #33C3F0; } 211 | .button.button-primary:hover, 212 | button.button-primary:hover, 213 | input[type="submit"].button-primary:hover, 214 | input[type="reset"].button-primary:hover, 215 | input[type="button"].button-primary:hover, 216 | .button.button-primary:focus, 217 | button.button-primary:focus, 218 | input[type="submit"].button-primary:focus, 219 | input[type="reset"].button-primary:focus, 220 | input[type="button"].button-primary:focus { 221 | color: #FFF; 222 | background-color: #1EAEDB; 223 | border-color: #1EAEDB; } 224 | 225 | 226 | /* Forms 227 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 228 | input[type="email"], 229 | input[type="number"], 230 | input[type="search"], 231 | input[type="text"], 232 | input[type="tel"], 233 | input[type="url"], 234 | input[type="password"], 235 | textarea, 236 | select { 237 | height: 38px; 238 | padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ 239 | background-color: #fff; 240 | border: 1px solid #D1D1D1; 241 | border-radius: 4px; 242 | box-shadow: none; 243 | box-sizing: border-box; } 244 | /* Removes awkward default styles on some inputs for iOS */ 245 | input[type="email"], 246 | input[type="number"], 247 | input[type="search"], 248 | input[type="text"], 249 | input[type="tel"], 250 | input[type="url"], 251 | input[type="password"], 252 | textarea { 253 | -webkit-appearance: none; 254 | -moz-appearance: none; 255 | appearance: none; } 256 | textarea { 257 | min-height: 65px; 258 | padding-top: 6px; 259 | padding-bottom: 6px; } 260 | input[type="email"]:focus, 261 | input[type="number"]:focus, 262 | input[type="search"]:focus, 263 | input[type="text"]:focus, 264 | input[type="tel"]:focus, 265 | input[type="url"]:focus, 266 | input[type="password"]:focus, 267 | textarea:focus, 268 | select:focus { 269 | border: 1px solid #33C3F0; 270 | outline: 0; } 271 | label, 272 | legend { 273 | display: block; 274 | margin-bottom: .5rem; 275 | font-weight: 600; } 276 | fieldset { 277 | padding: 0; 278 | border-width: 0; } 279 | input[type="checkbox"], 280 | input[type="radio"] { 281 | display: inline; } 282 | label > .label-body { 283 | display: inline-block; 284 | margin-left: .5rem; 285 | font-weight: normal; } 286 | 287 | 288 | /* Lists 289 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 290 | ul { 291 | list-style: circle inside; } 292 | ol { 293 | list-style: decimal inside; } 294 | ol, ul { 295 | padding-left: 0; 296 | margin-top: 0; } 297 | ul ul, 298 | ul ol, 299 | ol ol, 300 | ol ul { 301 | margin: 1.5rem 0 1.5rem 3rem; 302 | font-size: 90%; } 303 | li { 304 | margin-bottom: 1rem; } 305 | 306 | 307 | /* Code 308 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 309 | code { 310 | padding: .2rem .5rem; 311 | margin: 0 .2rem; 312 | font-size: 90%; 313 | white-space: nowrap; 314 | background: #F1F1F1; 315 | border: 1px solid #E1E1E1; 316 | border-radius: 4px; } 317 | pre > code { 318 | display: block; 319 | padding: 1rem 1.5rem; 320 | white-space: pre; } 321 | 322 | 323 | /* Tables 324 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 325 | th, 326 | td { 327 | padding: 12px 15px; 328 | text-align: left; 329 | border-bottom: 1px solid #E1E1E1; } 330 | th:first-child, 331 | td:first-child { 332 | padding-left: 0; } 333 | th:last-child, 334 | td:last-child { 335 | padding-right: 0; } 336 | 337 | 338 | /* Spacing 339 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 340 | button, 341 | .button { 342 | margin-bottom: 1rem; } 343 | input, 344 | textarea, 345 | select, 346 | fieldset { 347 | margin-bottom: 1.5rem; } 348 | pre, 349 | blockquote, 350 | dl, 351 | figure, 352 | table, 353 | p, 354 | ul, 355 | ol, 356 | form { 357 | margin-bottom: 2.5rem; } 358 | 359 | 360 | /* Utilities 361 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 362 | .u-full-width { 363 | width: 100%; 364 | box-sizing: border-box; } 365 | .u-max-full-width { 366 | max-width: 100%; 367 | box-sizing: border-box; } 368 | .u-pull-right { 369 | float: right; } 370 | .u-pull-left { 371 | float: left; } 372 | 373 | 374 | /* Misc 375 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 376 | hr { 377 | margin-top: 3rem; 378 | margin-bottom: 3.5rem; 379 | border-width: 0; 380 | border-top: 1px solid #E1E1E1; } 381 | 382 | 383 | /* Clearing 384 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 385 | 386 | /* Self Clearing Goodness */ 387 | .container:after, 388 | .row:after, 389 | .u-cf { 390 | content: ""; 391 | display: table; 392 | clear: both; } 393 | 394 | 395 | /* Media Queries 396 | –––––––––––––––––––––––––––––––––––––––––––––––––– */ 397 | /* 398 | Note: The best way to structure the use of media queries is to create the queries 399 | near the relevant code. For example, if you wanted to change the styles for buttons 400 | on small devices, paste the mobile query code up in the buttons section and style it 401 | there. 402 | */ 403 | 404 | 405 | /* Larger than mobile */ 406 | @media (min-width: 400px) {} 407 | 408 | /* Larger than phablet (also point when grid becomes active) */ 409 | @media (min-width: 550px) {} 410 | 411 | /* Larger than tablet */ 412 | @media (min-width: 750px) {} 413 | 414 | /* Larger than desktop */ 415 | @media (min-width: 1000px) {} 416 | 417 | /* Larger than Desktop HD */ 418 | @media (min-width: 1200px) {} 419 | -------------------------------------------------------------------------------- /htdocs/stylesheets/20 Examples of Beautiful CSS Typography Design - WDExplorer.webloc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | URL 6 | https://wdexplorer.com/20-examples-beautiful-css-typography-design/ 7 | 8 | 9 | -------------------------------------------------------------------------------- /htdocs/stylesheets/acm.css: -------------------------------------------------------------------------------- 1 | @page { 2 | size: 8.5in 11in; 3 | margin: 0.75in 0.75in 1in 0.75in; 4 | 5 | @footnotes { 6 | columns: 2; 7 | margin-top: 2em; 8 | border-top: 0.5px solid #000000; 9 | padding-top: 1em; 10 | } 11 | } 12 | body { 13 | -webkit-column-count: 2; 14 | -moz-column-count: 2; 15 | column-count: 2; 16 | -webkit-column-gap: balance; 17 | -moz-column-gap: balance; 18 | column-gap: balance; 19 | -webkit-column-gap: 0.33in; 20 | -moz-column-gap: 0.33in; 21 | column-gap: 0.33in; 22 | } 23 | .footnote { 24 | float: prince-column-footnote; 25 | } 26 | caption { 27 | caption-side: top; 28 | } 29 | { 30 | font-size: 9pt; 31 | } 32 | { 33 | font-family: "Times New Roman", Times, serif; 34 | text-align: justify; 35 | hyphens: auto; 36 | } 37 | h1, 38 | h2, 39 | h3, 40 | h4, 41 | h5, 42 | h6 { 43 | -webkit-column-break-after: avoid; 44 | column-break-after: avoid; 45 | break-after: avoid; 46 | font-family: "Times New Roman", Times, serif; 47 | font-weight: bold; 48 | hyphens: none; 49 | } 50 | h1:not(.counter-skip):before, 51 | h2:not(.counter-skip):before, 52 | h3:not(.counter-skip):before, 53 | h4:not(.counter-skip):before, 54 | h5:not(.counter-skip):before, 55 | h6:not(.counter-skip):before { 56 | margin-right: 0.5em; 57 | } 58 | h1 { 59 | font-size: 1.33333333em; 60 | } 61 | h2 { 62 | font-size: 1.33333333em; 63 | } 64 | h3 { 65 | font-size: 1.22222222em; 66 | } 67 | h4 { 68 | font-size: 1.22222222em; 69 | } 70 | h5 { 71 | font-size: 1.22222222em; 72 | } 73 | h6 { 74 | font-size: 1.22222222em; 75 | } 76 | p { 77 | margin: 0 0 0.5em; 78 | line-height: 1.17; 79 | text-indent: 0; 80 | } 81 | small { 82 | font-size: 0.77777778em; 83 | } 84 | code { 85 | font-family: Courier, monospace; 86 | font-size: 0.88888889em; 87 | font-weight: 400; 88 | white-space: nowrap; 89 | } 90 | q:before { 91 | content: "“"; 92 | } 93 | q:after { 94 | content: "”"; 95 | } 96 | q > q:before { 97 | content: "‘"; 98 | } 99 | q > q:after { 100 | content: "’"; 101 | } 102 | table { 103 | width: 100%; 104 | margin: 1.667em 0 1em; 105 | border-collapse: collapse; 106 | } 107 | th, 108 | td { 109 | padding: 0.333em; 110 | border: 0.5px solid #000000; 111 | text-align: center; 112 | } 113 | caption { 114 | margin: 0 0 4pt; 115 | font-weight: bold; 116 | } 117 | figure { 118 | margin: 1.333em 0 2.333em; 119 | text-align: center; 120 | } 121 | figcaption { 122 | font-weight: bold; 123 | } 124 | .footnote { 125 | margin-left: 0.333em; 126 | padding-left: 0.667em; 127 | } 128 | .footnote::footnote-call { 129 | vertical-align: super; 130 | line-height: none; 131 | font-size: 66%; 132 | } 133 | .footnote::footnote-marker { 134 | font-size: 66%; 135 | footnote-style-position: inside; 136 | } 137 | cite { 138 | display: block; 139 | position: relative; 140 | margin-left: 2.5em; 141 | -webkit-column-break-inside: avoid; 142 | column-break-inside: avoid; 143 | break-inside: avoid; 144 | font-style: normal; 145 | text-align: left; 146 | } 147 | cite:before { 148 | position: absolute; 149 | display: inline-block; 150 | margin-left: -2.5em; 151 | } 152 | cite a { 153 | text-decoration: none; 154 | } 155 | a[href^="#"] { 156 | color: inherit; 157 | text-decoration: none; 158 | } 159 | @page { 160 | 161 | } 162 | body > :first-child { 163 | counter-reset: page 1; 164 | } 165 | h1:not(.counter-skip) { 166 | counter-increment: section; 167 | } 168 | h2:not(.counter-skip) { 169 | counter-increment: subsection; 170 | } 171 | h3:not(.counter-skip) { 172 | counter-increment: subsubsection; 173 | } 174 | h4:not(.counter-skip) { 175 | counter-increment: subsubsection; 176 | } 177 | h5:not(.counter-skip) { 178 | counter-increment: subsubsubsection; 179 | } 180 | h6:not(.counter-skip) { 181 | counter-increment: subsubsubsubsection; 182 | } 183 | h1.counter-reset { 184 | counter-reset: section; 185 | } 186 | h2.counter-reset { 187 | counter-reset: subsection; 188 | } 189 | h3.counter-reset { 190 | counter-reset: subsubsection; 191 | } 192 | h4.counter-reset { 193 | counter-reset: subsubsection; 194 | } 195 | h5.counter-reset { 196 | counter-reset: subsubsubsection; 197 | } 198 | h6.counter-reset { 199 | counter-reset: subsubsubsubsection; 200 | } 201 | h1:not(.counter-skip):before { 202 | content: "" counter(section, decimal) ""; 203 | } 204 | h2:not(.counter-skip):before { 205 | content: "" counter(section, decimal) '.' counter(subsection, decimal) ""; 206 | } 207 | h3:not(.counter-skip):before { 208 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) ""; 209 | } 210 | h4:not(.counter-skip):before { 211 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) ""; 212 | } 213 | h5:not(.counter-skip):before { 214 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsubsection, decimal) ""; 215 | } 216 | h6:not(.counter-skip):before { 217 | content: "" counter(section, decimal) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsection, decimal) '.' counter(subsubsubsection, decimal) '.' counter(subsubsubsubsection, decimal) ""; 218 | } 219 | table { 220 | counter-increment: table; 221 | } 222 | caption:before { 223 | content: "Table " counter(table) ". "; 224 | } 225 | figure { 226 | counter-increment: figure; 227 | } 228 | figcaption:before { 229 | content: "Figure " counter(figure) ". "; 230 | } 231 | .footnote { 232 | counter-increment: footnote; 233 | } 234 | .footnote::footnote-call { 235 | content: counter(footnote); 236 | } 237 | .footnote::footnote-marker { 238 | content: counter(footnote); 239 | } 240 | a[href^="#"] { 241 | content: target-counter(attr(href, url), reference); 242 | } 243 | a[href^="#"]:before { 244 | content: "["; 245 | } 246 | a[href^="#"]:after { 247 | content: "]"; 248 | } 249 | a[href^="#"].section { 250 | content: target-counter(attr(href, url), section); 251 | } 252 | a[href^="#"].section:before { 253 | content: ""; 254 | } 255 | a[href^="#"].section:after { 256 | content: ""; 257 | } 258 | a[href^="#"].subsection { 259 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection); 260 | } 261 | a[href^="#"].subsection:before { 262 | content: ""; 263 | } 264 | a[href^="#"].subsection:after { 265 | content: ""; 266 | } 267 | a[href^="#"].subsubsection { 268 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection); 269 | } 270 | a[href^="#"].subsubsection:before { 271 | content: ""; 272 | } 273 | a[href^="#"].subsubsection:after { 274 | content: ""; 275 | } 276 | a[href^="#"].subsubsubsection { 277 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection) "." target-counter(attr(href, url), subsubsubsection); 278 | } 279 | a[href^="#"].subsubsubsection:before { 280 | content: ""; 281 | } 282 | a[href^="#"].subsubsubsection:after { 283 | content: ""; 284 | } 285 | a[href^="#"].figure { 286 | content: target-counter(attr(href, url), figure); 287 | } 288 | a[href^="#"].figure:before { 289 | content: "Figure "; 290 | } 291 | a[href^="#"].figure:after { 292 | content: ""; 293 | } 294 | a[href^="#"].table { 295 | content: target-counter(attr(href, url), table); 296 | } 297 | a[href^="#"].table:before { 298 | content: "Table "; 299 | } 300 | a[href^="#"].table:after { 301 | content: ""; 302 | } 303 | .cites > :not(:first-child):before { 304 | content: none; 305 | } 306 | .cites > :not(:last-child):after { 307 | content: ", "; 308 | } 309 | cite { 310 | counter-increment: reference; 311 | } 312 | cite:before { 313 | content: "[" counter(reference) "]"; 314 | } 315 | .col-1 { 316 | -webkit-column-count: 1; 317 | -moz-column-count: 1; 318 | column-count: 1; 319 | } 320 | .col-2 { 321 | -webkit-column-count: 2; 322 | -moz-column-count: 2; 323 | column-count: 2; 324 | } 325 | .col-3 { 326 | -webkit-column-count: 3; 327 | -moz-column-count: 3; 328 | column-count: 3; 329 | } 330 | .col-4 { 331 | -webkit-column-count: 4; 332 | -moz-column-count: 4; 333 | column-count: 4; 334 | } 335 | .col-span { 336 | -webkit-column-span: all; 337 | -moz-column-span: all; 338 | column-span: all; 339 | } 340 | .page-break-after { 341 | -webkit-column-break-after: always; 342 | column-break-after: always; 343 | break-after: always; 344 | } 345 | .page-break-before { 346 | -webkit-column-break-after: always; 347 | column-break-after: always; 348 | break-after: always; 349 | } 350 | .col-break-after { 351 | -webkit-column-break-after: always; 352 | column-break-after: always; 353 | break-after: always; 354 | } 355 | .col-break-before { 356 | -webkit-column-break-after: always; 357 | column-break-after: always; 358 | break-after: always; 359 | } 360 | .counter-skip h1:before, 361 | .counter-skip h2:before, 362 | .counter-skip h3:before, 363 | .counter-skip h4:before, 364 | .counter-skip h5:before, 365 | .counter-skip h6:before, 366 | .counter-skip:before { 367 | margin-right: 0 !important; 368 | content: "" !important; 369 | } 370 | h1, 371 | h2 { 372 | margin: 1.33333333em 0 0 0; 373 | } 374 | h1 { 375 | text-transform: uppercase; 376 | } 377 | h1:not(.counter-skip):before { 378 | content: "" counter(section) "."; 379 | } 380 | h1 + h2, 381 | h1 + * > h2:first-child { 382 | margin-top: 0; 383 | } 384 | h3, 385 | h4 { 386 | margin: 1.33333333em 0 0 0; 387 | font-style: italic; 388 | font-weight: normal; 389 | } 390 | header { 391 | column-span: all; 392 | margin-bottom: 4em; 393 | font-family: Helvetica, sans-serif; 394 | } 395 | header h2 { 396 | margin: 2em 0; 397 | font-size: 1.333em; 398 | font-weight: normal; 399 | text-align: center; 400 | } 401 | .title { 402 | margin: 0 0 0.333em; 403 | font-family: Helvetica, sans-serif; 404 | font-size: 18pt; 405 | text-align: center; 406 | text-transform: none; 407 | -webkit-column-span: all; 408 | -moz-column-span: all; 409 | column-span: all; 410 | } 411 | .authors { 412 | -webkit-column-gap: 0; 413 | -moz-column-gap: 0; 414 | column-gap: 0; 415 | } 416 | .authors + .authors { 417 | margin-top: 6pt; 418 | } 419 | .author { 420 | -webkit-column-break-inside: avoid; 421 | column-break-inside: avoid; 422 | break-inside: avoid; 423 | -webkit-column-break-after: always; 424 | column-break-after: always; 425 | break-after: always; 426 | text-align: center; 427 | font-size: 10pt; 428 | } 429 | .author a { 430 | color: inherit; 431 | text-decoration: none; 432 | } 433 | .author > :first-child, 434 | .author > :last-child { 435 | font-size: 12pt; 436 | } 437 | .copyright { 438 | height: 1.5in; 439 | float: column-bottom; 440 | font-size: 8pt; 441 | } 442 | .copyright > * { 443 | position: absolute; 444 | left: 0; 445 | bottom: 0; 446 | width: 3.333in; 447 | } 448 | cite { 449 | margin-bottom: 0.333em; 450 | text-align: left; 451 | } 452 | cite a { 453 | text-decoration: none; 454 | } 455 | .appendix { 456 | counter-reset: section; 457 | } 458 | .appendix h1:not(.counter-skip):before { 459 | content: "" counter(section, upper-alpha) ""; 460 | } 461 | .appendix h2:not(.counter-skip):before { 462 | content: "" counter(section, upper-alpha) '.' counter(subsection, decimal) ""; 463 | } 464 | .appendix h3:not(.counter-skip):before { 465 | content: "" counter(section, upper-alpha) '.' counter(subsection, decimal) '.' counter(subsubsection, decimal) ""; 466 | } 467 | .equation { 468 | margin: 3pt 0; 469 | text-align: center; 470 | } 471 | .equation:not(.displaymath) { 472 | position: relative; 473 | counter-increment: equation; 474 | } 475 | .equation:not(.displaymath):after { 476 | content: "(" counter(equation) ")"; 477 | position: absolute; 478 | top: 50%; 479 | right: 0; 480 | bottom: 50%; 481 | line-height: 0; 482 | } 483 | .theorem, 484 | .proof, 485 | .definition { 486 | margin: 12pt 0; 487 | } 488 | .theorem:before, 489 | .proof:before, 490 | .definition:before { 491 | margin-left: 9pt; 492 | } 493 | .theorem { 494 | font-style: italic; 495 | } 496 | .theorem:before { 497 | counter-increment: theorem; 498 | content: "Theorem " counter(theorem) ". "; 499 | font-style: normal; 500 | font-variant: small-caps; 501 | } 502 | .proof:before { 503 | counter-increment: proof; 504 | content: "Proof " counter(proof) ". "; 505 | font-style: normal; 506 | font-variant: small-caps; 507 | } 508 | .definition:before { 509 | counter-increment: definition; 510 | content: "Definition " counter(definition) ". "; 511 | font-style: italic; 512 | } 513 | @media screen { 514 | .authors { 515 | -webkit-column-count: 3; 516 | -moz-column-count: 3; 517 | column-count: 3; 518 | } 519 | .copyright { 520 | display: none; 521 | } 522 | } 523 | -------------------------------------------------------------------------------- /htdocs/stylesheets/avenir-white.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "Avenir Next", Helvetica, Arial, sans-serif; 3 | padding:1em; 4 | margin:auto; 5 | max-width:42em; 6 | background:#fefefe; 7 | } 8 | 9 | h1, h2, h3, h4, h5, h6 { 10 | font-weight: bold; 11 | } 12 | 13 | h1 { 14 | color: #000000; 15 | font-size: 28pt; 16 | } 17 | 18 | h2 { 19 | border-bottom: 1px solid #CCCCCC; 20 | color: #000000; 21 | font-size: 24px; 22 | } 23 | 24 | h3 { 25 | font-size: 18px; 26 | } 27 | 28 | h4 { 29 | font-size: 16px; 30 | } 31 | 32 | h5 { 33 | font-size: 14px; 34 | } 35 | 36 | h6 { 37 | color: #777777; 38 | background-color: inherit; 39 | font-size: 14px; 40 | } 41 | 42 | hr { 43 | height: 0.2em; 44 | border: 0; 45 | color: #CCCCCC; 46 | background-color: #CCCCCC; 47 | } 48 | 49 | p, blockquote, ul, ol, dl, li, table, pre { 50 | margin: 15px 0; 51 | } 52 | 53 | a, a:visited { 54 | color: #4183C4; 55 | background-color: inherit; 56 | text-decoration: none; 57 | } 58 | 59 | #message { 60 | border-radius: 6px; 61 | border: 1px solid #ccc; 62 | display:block; 63 | width:100%; 64 | height:60px; 65 | margin:6px 0px; 66 | } 67 | 68 | button, #ws { 69 | font-size: 10pt; 70 | padding: 4px 6px; 71 | border-radius: 5px; 72 | border: 1px solid #bbb; 73 | background-color: #eee; 74 | } 75 | 76 | code, pre, #ws, #message { 77 | font-family: Monaco; 78 | font-size: 10pt; 79 | border-radius: 3px; 80 | background-color: #F8F8F8; 81 | color: inherit; 82 | } 83 | 84 | code { 85 | border: 1px solid #EAEAEA; 86 | margin: 0 2px; 87 | padding: 0 5px; 88 | } 89 | 90 | pre { 91 | border: 1px solid #CCCCCC; 92 | overflow: auto; 93 | padding: 4px 8px; 94 | } 95 | 96 | pre > code { 97 | border: 0; 98 | margin: 0; 99 | padding: 0; 100 | } 101 | 102 | #ws { background-color: #f8f8f8; } 103 | 104 | .send { color:#77bb77; } 105 | .server { color:#7799bb; } 106 | .error { color:#AA0000; } 107 | -------------------------------------------------------------------------------- /htdocs/stylesheets/getaway.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Six Caps'; 3 | src: url(https://fonts.googleapis.com/css?family=Six+Caps:400' rel='stylesheet' type='text/css); 4 | } 5 | @font-face { 6 | font-family: 'Merriweather'; 7 | src: url(https://fonts.googleapis.com/css?family=Merriweather:400,400italic,900' rel='stylesheet' type='text/css' rel='stylesheet' type='text/css); 8 | } 9 | 10 | h1 { 11 | color: #67BE9B; 12 | font-family: 'Six Caps'; 13 | font-size: 50px; 14 | font-weight: 400; 15 | line-height: 50px; 16 | letter-spacing: 10px; 17 | margin-bottom: 20px; 18 | text-indent: 0px; 19 | text-transform: uppercase; 20 | } 21 | 22 | p { 23 | color: #54534F; 24 | font-family: 'Merriweather'; 25 | font-size: 18px; 26 | font-weight: 500; 27 | line-height: 24px; 28 | margin-bottom: 12px; 29 | } 30 | 31 | a { 32 | color: #D8B445; border-bottom: 2px solid #D8B445; 33 | font-style: italic; 34 | text-decoration: none; 35 | } 36 | 37 | a:hover { 38 | color: #54534F; 39 | } 40 | -------------------------------------------------------------------------------- /htdocs/stylesheets/ieee.css: -------------------------------------------------------------------------------- 1 | 2 | @page { 3 | size: 8.5in 11in; 4 | margin: 0.75in 0.62in 1in 0.62in; 5 | 6 | @footnotes { 7 | columns: 2; 8 | margin-top: 1em; 9 | border-top: 0.5px solid #000000; 10 | padding-top: 3pt; 11 | } 12 | } 13 | body { 14 | -webkit-column-count: 1; 15 | -moz-column-count: 2; 16 | column-count: 1; 17 | -webkit-column-gap: balance; 18 | -moz-column-gap: balance; 19 | column-gap: balance; 20 | -webkit-column-gap: 0.33in; 21 | -moz-column-gap: 0.33in; 22 | column-gap: 0.33in; 23 | } 24 | .footnote { 25 | float: prince-column-footnote; 26 | } 27 | caption { 28 | caption-side: top; 29 | } 30 | { 31 | font-size: 10pt; 32 | } 33 | { 34 | font-family: "Times New Roman", Times, serif; 35 | text-align: justify; 36 | hyphens: none; 37 | } 38 | h1, 39 | h2, 40 | h3, 41 | h4, 42 | h5, 43 | h6 { 44 | -webkit-column-break-after: avoid; 45 | column-break-after: avoid; 46 | break-after: avoid; 47 | font-family: "Times New Roman", Times, serif; 48 | font-weight: bold; 49 | hyphens: none; 50 | } 51 | h1:not(.counter-skip):before, 52 | h2:not(.counter-skip):before, 53 | h3:not(.counter-skip):before, 54 | h4:not(.counter-skip):before, 55 | h5:not(.counter-skip):before, 56 | h6:not(.counter-skip):before { 57 | margin-right: 0.5em; 58 | } 59 | h1 { 60 | font-size: 10pt; 61 | } 62 | h2 { 63 | font-size: 10pt; 64 | } 65 | h3 { 66 | font-size: 10pt; 67 | } 68 | h4 { 69 | font-size: 10pt; 70 | } 71 | h5 { 72 | font-size: 10pt; 73 | } 74 | h6 { 75 | font-size: 10pt; 76 | } 77 | p { 78 | margin: 0 0 0.5em; 79 | line-height: 1.1; 80 | text-indent: 1.5em; 81 | } 82 | small { 83 | font-size: 8pt; 84 | } 85 | code { 86 | font-family: Courier, monospace; 87 | font-size: 8pt; 88 | font-weight: 400; 89 | white-space: nowrap; 90 | } 91 | q:before { 92 | content: "“"; 93 | } 94 | q:after { 95 | content: "”"; 96 | } 97 | q > q:before { 98 | content: "‘"; 99 | } 100 | q > q:after { 101 | content: "’"; 102 | } 103 | table { 104 | width: 100%; 105 | margin: 1.667em 0 1em; 106 | border-collapse: collapse; 107 | } 108 | th, 109 | td { 110 | padding: 0.333em; 111 | border: 0.5px solid #000000; 112 | text-align: center; 113 | } 114 | caption { 115 | margin: 0 0 4pt; 116 | font-weight: bold; 117 | } 118 | figure { 119 | margin: 1.333em 0 2.333em; 120 | text-align: center; 121 | } 122 | figcaption { 123 | font-weight: bold; 124 | } 125 | .footnote { 126 | margin-left: 0.333em; 127 | padding-left: 0.667em; 128 | } 129 | .footnote::footnote-call { 130 | vertical-align: super; 131 | line-height: none; 132 | font-size: 66%; 133 | } 134 | .footnote::footnote-marker { 135 | font-size: 66%; 136 | footnote-style-position: inside; 137 | } 138 | cite { 139 | display: block; 140 | position: relative; 141 | margin-left: 2.5em; 142 | -webkit-column-break-inside: avoid; 143 | column-break-inside: avoid; 144 | break-inside: avoid; 145 | font-style: normal; 146 | text-align: left; 147 | } 148 | cite:before { 149 | position: absolute; 150 | display: inline-block; 151 | margin-left: -2.5em; 152 | } 153 | cite a { 154 | text-decoration: none; 155 | } 156 | a[href^="#"] { 157 | color: inherit; 158 | text-decoration: none; 159 | } 160 | @page { 161 | 162 | } 163 | body > :first-child { 164 | counter-reset: page 1; 165 | } 166 | h1:not(.counter-skip) { 167 | counter-increment: section; 168 | } 169 | h2:not(.counter-skip) { 170 | counter-increment: subsection; 171 | } 172 | h3:not(.counter-skip) { 173 | counter-increment: subsubsection; 174 | } 175 | h4:not(.counter-skip) { 176 | counter-increment: subsubsection; 177 | } 178 | h5:not(.counter-skip) { 179 | counter-increment: subsubsubsection; 180 | } 181 | h6:not(.counter-skip) { 182 | counter-increment: subsubsubsubsection; 183 | } 184 | h1.counter-reset { 185 | counter-reset: section; 186 | } 187 | h2.counter-reset { 188 | counter-reset: subsection; 189 | } 190 | h3.counter-reset { 191 | counter-reset: subsubsection; 192 | } 193 | h4.counter-reset { 194 | counter-reset: subsubsection; 195 | } 196 | h5.counter-reset { 197 | counter-reset: subsubsubsection; 198 | } 199 | h6.counter-reset { 200 | counter-reset: subsubsubsubsection; 201 | } 202 | h1:not(.counter-skip):before { 203 | content: "" counter(section, upper-roman) "."; 204 | } 205 | h2:not(.counter-skip):before { 206 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) "."; 207 | } 208 | h3:not(.counter-skip):before { 209 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) "."; 210 | } 211 | h4:not(.counter-skip):before { 212 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) "."; 213 | } 214 | h5:not(.counter-skip):before { 215 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) '.' counter(subsubsubsection, upper-roman) "."; 216 | } 217 | h6:not(.counter-skip):before { 218 | content: "" counter(section, upper-roman) '.' counter(subsection, upper-alpha) '.' counter(subsubsection, decimal) '.' counter(subsubsection, lower-alpha) '.' counter(subsubsubsection, upper-roman) '.' counter(subsubsubsubsection, upper-roman) "."; 219 | } 220 | table { 221 | counter-increment: table; 222 | } 223 | caption:before { 224 | content: "Table " counter(table) ". "; 225 | } 226 | figure { 227 | counter-increment: figure; 228 | } 229 | figcaption:before { 230 | content: "Fig. " counter(figure) ". "; 231 | } 232 | .footnote { 233 | counter-increment: footnote; 234 | } 235 | .footnote::footnote-call { 236 | content: counter(footnote); 237 | } 238 | .footnote::footnote-marker { 239 | content: counter(footnote); 240 | } 241 | a[href^="#"] { 242 | content: target-counter(attr(href, url), reference); 243 | } 244 | a[href^="#"]:before { 245 | content: "["; 246 | } 247 | a[href^="#"]:after { 248 | content: "]"; 249 | } 250 | a[href^="#"].section { 251 | content: target-counter(attr(href, url), section); 252 | } 253 | a[href^="#"].section:before { 254 | content: ""; 255 | } 256 | a[href^="#"].section:after { 257 | content: ""; 258 | } 259 | a[href^="#"].subsection { 260 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection); 261 | } 262 | a[href^="#"].subsection:before { 263 | content: ""; 264 | } 265 | a[href^="#"].subsection:after { 266 | content: ""; 267 | } 268 | a[href^="#"].subsubsection { 269 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection); 270 | } 271 | a[href^="#"].subsubsection:before { 272 | content: ""; 273 | } 274 | a[href^="#"].subsubsection:after { 275 | content: ""; 276 | } 277 | a[href^="#"].subsubsubsection { 278 | content: target-counter(attr(href, url), section) "." target-counter(attr(href, url), subsection) "." target-counter(attr(href, url), subsubsection) "." target-counter(attr(href, url), subsubsubsection); 279 | } 280 | a[href^="#"].subsubsubsection:before { 281 | content: ""; 282 | } 283 | a[href^="#"].subsubsubsection:after { 284 | content: ""; 285 | } 286 | a[href^="#"].figure { 287 | content: target-counter(attr(href, url), figure); 288 | } 289 | a[href^="#"].figure:before { 290 | content: "Fig. "; 291 | } 292 | a[href^="#"].figure:after { 293 | content: ""; 294 | } 295 | a[href^="#"].table { 296 | content: target-counter(attr(href, url), table); 297 | } 298 | a[href^="#"].table:before { 299 | content: "Table "; 300 | } 301 | a[href^="#"].table:after { 302 | content: ""; 303 | } 304 | .cites > :not(:first-child):before { 305 | content: none; 306 | } 307 | .cites > :not(:last-child):after { 308 | content: ", "; 309 | } 310 | cite { 311 | counter-increment: reference; 312 | } 313 | cite:before { 314 | content: "[" counter(reference) "]"; 315 | } 316 | .col-1 { 317 | -webkit-column-count: 1; 318 | -moz-column-count: 1; 319 | column-count: 1; 320 | } 321 | .col-2 { 322 | -webkit-column-count: 2; 323 | -moz-column-count: 2; 324 | column-count: 2; 325 | } 326 | .col-3 { 327 | -webkit-column-count: 3; 328 | -moz-column-count: 3; 329 | column-count: 3; 330 | } 331 | .col-4 { 332 | -webkit-column-count: 4; 333 | -moz-column-count: 4; 334 | column-count: 4; 335 | } 336 | .col-span { 337 | -webkit-column-span: all; 338 | -moz-column-span: all; 339 | column-span: all; 340 | } 341 | .page-break-after { 342 | -webkit-column-break-after: always; 343 | column-break-after: always; 344 | break-after: always; 345 | } 346 | .page-break-before { 347 | -webkit-column-break-after: always; 348 | column-break-after: always; 349 | break-after: always; 350 | } 351 | .col-break-after { 352 | -webkit-column-break-after: always; 353 | column-break-after: always; 354 | break-after: always; 355 | } 356 | .col-break-before { 357 | -webkit-column-break-after: always; 358 | column-break-after: always; 359 | break-after: always; 360 | } 361 | .counter-skip h1:before, 362 | .counter-skip h2:before, 363 | .counter-skip h3:before, 364 | .counter-skip h4:before, 365 | .counter-skip h5:before, 366 | .counter-skip h6:before, 367 | .counter-skip:before { 368 | margin-right: 0 !important; 369 | content: "" !important; 370 | } 371 | .abstract { 372 | font-size: 9pt; 373 | font-weight: bold; 374 | } 375 | .abstract p { 376 | margin-bottom: 12pt; 377 | } 378 | h1, 379 | h2, 380 | h3, 381 | h4, 382 | h5, 383 | h6 { 384 | font-weight: normal; 385 | } 386 | h1, 387 | h5 { 388 | margin-bottom: 4pt; 389 | font-variant: small-caps; 390 | text-align: center; 391 | } 392 | h3 { 393 | text-indent: 1.5em; 394 | } 395 | h4 { 396 | text-indent: 2.25em; 397 | } 398 | h2 { 399 | margin-bottom: 2pt; 400 | font-style: italic; 401 | } 402 | h3, 403 | h4, 404 | h5 { 405 | page-break-after: auto; 406 | } 407 | h2:not(.counter-skip):before { 408 | content: "" counter(subsection, upper-alpha) "."; 409 | } 410 | h5:not(.counter-skip):before { 411 | content: none; 412 | } 413 | h1 + h2, 414 | h1 + * > h2:first-child { 415 | margin-top: 10pt; 416 | } 417 | h3, 418 | h4 { 419 | margin: 10pt 0 0 0; 420 | font-style: italic; 421 | } 422 | ul { 423 | margin-left: 2.5em; 424 | } 425 | li { 426 | margin-bottom: 6pt; 427 | } 428 | ol { 429 | list-style: none; 430 | counter-reset: ol; 431 | margin-left: 0; 432 | text-indent: 1.5em; 433 | } 434 | ol > li:before { 435 | counter-increment: ol; 436 | content: counter(ol, decimal) ") "; 437 | font-style: italic; 438 | } 439 | ol ol { 440 | text-indent: 3em; 441 | } 442 | ol ol > li:before { 443 | counter-increment: ol; 444 | content: counter(ol, lower-alpha) ") "; 445 | } 446 | .title { 447 | margin-bottom: 5pt; 448 | font-size: 24pt; 449 | font-variant: normal; 450 | } 451 | .subtitle { 452 | margin-top: 0; 453 | margin-bottom: 35pt; 454 | font-size: 14pt; 455 | font-style: normal; 456 | font-weight: normal; 457 | text-align: center; 458 | } 459 | header { 460 | column-span: all; 461 | margin-bottom: 22pt; 462 | } 463 | table { 464 | font-size: 8pt; 465 | } 466 | caption, 467 | figcaption { 468 | font-size: 8pt; 469 | font-weight: normal; 470 | } 471 | caption { 472 | font-variant: small-caps; 473 | } 474 | figcaption { 475 | text-align: left; 476 | } 477 | .footnote { 478 | font-size: 8pt; 479 | } 480 | .footnote { 481 | margin-bottom: -0.38in; 482 | font-size: 8pt; 483 | font-weight: normal; 484 | } 485 | .footnote::footnote-call, 486 | .footnote::footnote-marker { 487 | display: none; 488 | content: none; 489 | } 490 | .authors { 491 | column-gap: 0; 492 | } 493 | .authors + .authors { 494 | margin-top: 6pt; 495 | } 496 | .author { 497 | break-inside: avoid; 498 | column-break-after: always; 499 | text-align: center; 500 | } 501 | .author > :first-child { 502 | font-size: 11pt; 503 | } 504 | .equation { 505 | margin: 12pt 0 8pt; 506 | text-align: center; 507 | } 508 | .equation:not(.displaymath) { 509 | position: relative; 510 | counter-increment: equation; 511 | } 512 | .equation:not(.displaymath):after { 513 | content: "(" counter(equation) ")"; 514 | position: absolute; 515 | top: 50%; 516 | right: 0; 517 | bottom: 50%; 518 | line-height: 0; 519 | } 520 | .references { 521 | margin-top: 18pt; 522 | } 523 | h1.references { 524 | margin-top: 24pt; 525 | } 526 | cite { 527 | margin-bottom: 3pt; 528 | font-size: 8pt; 529 | text-align: left; 530 | } 531 | -------------------------------------------------------------------------------- /htdocs/stylesheets/retro.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | pre, 4 | code { 5 | font-family: Menlo, Monaco, "Courier New", monospace; 6 | } 7 | 8 | pre { 9 | padding: .5rem; 10 | line-height: 1.25; 11 | overflow-x: scroll; 12 | } 13 | 14 | @media print { 15 | *, 16 | *:before, 17 | *:after { 18 | background: transparent !important; 19 | color: #000 !important; 20 | box-shadow: none !important; 21 | text-shadow: none !important; 22 | } 23 | 24 | a, 25 | a:visited { 26 | text-decoration: underline; 27 | } 28 | 29 | a[href]:after { 30 | content: " (" attr(href) ")"; 31 | } 32 | 33 | abbr[title]:after { 34 | content: " (" attr(title) ")"; 35 | } 36 | 37 | a[href^="#"]:after, 38 | a[href^="javascript:"]:after { 39 | content: ""; 40 | } 41 | 42 | pre, 43 | blockquote { 44 | border: 1px solid #999; 45 | page-break-inside: avoid; 46 | } 47 | 48 | thead { 49 | display: table-header-group; 50 | } 51 | 52 | tr, 53 | img { 54 | page-break-inside: avoid; 55 | } 56 | 57 | img { 58 | max-width: 100% !important; 59 | } 60 | 61 | p, 62 | h2, 63 | h3 { 64 | orphans: 3; 65 | widows: 3; 66 | } 67 | 68 | h2, 69 | h3 { 70 | page-break-after: avoid; 71 | } 72 | } 73 | 74 | a, 75 | a:visited { 76 | color: #01ff70; 77 | } 78 | 79 | a:hover, 80 | a:focus, 81 | a:active { 82 | color: #2ecc40; 83 | } 84 | 85 | .retro-no-decoration { 86 | text-decoration: none; 87 | } 88 | 89 | html { 90 | font-size: 12px; 91 | } 92 | 93 | @media screen and (min-width: 32rem) and (max-width: 48rem) { 94 | html { 95 | font-size: 15px; 96 | } 97 | } 98 | 99 | @media screen and (min-width: 48rem) { 100 | html { 101 | font-size: 16px; 102 | } 103 | } 104 | 105 | body { 106 | line-height: 1.85; 107 | } 108 | 109 | p, 110 | .retro-p { 111 | font-size: 1rem; 112 | margin-bottom: 1.3rem; 113 | } 114 | 115 | h1, 116 | .retro-h1, 117 | h2, 118 | .retro-h2, 119 | h3, 120 | .retro-h3, 121 | h4, 122 | .retro-h4 { 123 | margin: 1.414rem 0 .5rem; 124 | font-weight: inherit; 125 | line-height: 1.42; 126 | } 127 | 128 | h1, 129 | .retro-h1 { 130 | margin-top: 0; 131 | font-size: 3.998rem; 132 | } 133 | 134 | h2, 135 | .retro-h2 { 136 | font-size: 2.827rem; 137 | } 138 | 139 | h3, 140 | .retro-h3 { 141 | font-size: 1.999rem; 142 | } 143 | 144 | h4, 145 | .retro-h4 { 146 | font-size: 1.414rem; 147 | } 148 | 149 | h5, 150 | .retro-h5 { 151 | font-size: 1.121rem; 152 | } 153 | 154 | h6, 155 | .retro-h6 { 156 | font-size: .88rem; 157 | } 158 | 159 | small, 160 | .retro-small { 161 | font-size: .707em; 162 | } 163 | 164 | /* https://github.com/mrmrs/fluidity */ 165 | 166 | img, 167 | canvas, 168 | iframe, 169 | video, 170 | svg, 171 | select, 172 | textarea { 173 | max-width: 100%; 174 | } 175 | 176 | html, 177 | body { 178 | background-color: #222; 179 | min-height: 100%; 180 | } 181 | 182 | html { 183 | font-size: 18px; 184 | } 185 | 186 | body { 187 | color: #fafafa; 188 | font-family: "Courier New"; 189 | line-height: 1.45; 190 | margin: 6rem auto 1rem; 191 | max-width: 48rem; 192 | padding: .25rem; 193 | } 194 | 195 | pre { 196 | background-color: #333; 197 | } 198 | 199 | blockquote { 200 | border-left: 3px solid #01ff70; 201 | padding-left: 1rem; 202 | } -------------------------------------------------------------------------------- /htdocs/stylesheets/screen.css: -------------------------------------------------------------------------------- 1 | html { font-size: 62.5%; } 2 | html, body { height: 100%; } 3 | 4 | body { 5 | font-family: Helvetica, Arial, sans-serif; 6 | font-size: 150%; 7 | line-height: 1.3; 8 | color: #f6e6cc; 9 | width: 700px; 10 | margin: auto; 11 | background: #27221a; 12 | position: relative; 13 | padding: 0 30px; 14 | } 15 | 16 | p,ul,ol,dl,table,pre { margin-bottom: 1em; } 17 | ul { margin-left: 20px; } 18 | a { text-decoration: none; cursor: pointer; color: #ba832c; font-weight: bold; } 19 | a:focus { outline: 1px dotted; } 20 | a:visited { } 21 | a:hover, a:focus { color: #d3a459; text-decoration: none; } 22 | a *, button * { cursor: pointer; } 23 | hr { display: none; } 24 | small { font-size: 90%; } 25 | input, select, button, textarea, option { font-family: Arial, "Lucida Grande", "Lucida Sans Unicode", Arial, Verdana, sans-serif; font-size: 100%; } 26 | button, label, select, option, input[type=submit] { cursor: pointer; } 27 | .group:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .group {display: inline-block;} 28 | /* Hides from IE-mac \*/ * html .group {height: 1%;} .group {display: block;} /* End hide from IE-mac */ 29 | sup { font-size: 80%; line-height: 1; vertical-align: super; } 30 | button::-moz-focus-inner { border: 0; padding: 1px; } 31 | span.amp { font-family: Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif; font-weight: normal; font-style: italic; font-size: 1.2em; line-height: 0.8; } 32 | 33 | h1,h2,h3,h4,h5,h6 { 34 | line-height: 1.1; 35 | font-family: Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif; 36 | } 37 | 38 | h2 { font-size: 22pt; } 39 | h3 { font-size: 20pt; } 40 | h4 { font-size: 18pt; } 41 | h5 { font-size: 16pt; } 42 | h6 { font-size: 14pt; } 43 | 44 | ::selection { background: #745626; } 45 | ::-moz-selection { background: #745626; } 46 | 47 | h1 { 48 | font-size: 420%; 49 | margin: 0 0 0.1em; 50 | font-family: Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif; 51 | } 52 | 53 | h1 a, 54 | h1 a:hover { 55 | color: #d7af72; 56 | font-weight: normal; 57 | text-decoration: none; 58 | } 59 | 60 | pre { 61 | background: rgba(0,0,0,0.3); 62 | color: #fff; 63 | padding: 8px 10px; 64 | border-radius: 0.4em; 65 | -moz-border-radius: 0.4em; 66 | -webkit-border-radius: 0.4em; 67 | overflow-x: hidden; 68 | } 69 | 70 | pre code { 71 | font-size: 10pt; 72 | } 73 | 74 | .thumb { 75 | float:left; 76 | margin: 10px; 77 | } 78 | -------------------------------------------------------------------------------- /htdocs/stylesheets/typebase.css: -------------------------------------------------------------------------------- 1 | /*! Typebase.less v0.1.0 | MIT License */ 2 | /* Setup */ 3 | { 4 | /* Change default typefaces here */ 5 | font-family: sans-serif; 6 | font-size: 137.5%; 7 | -webkit-font-smoothing: antialiased; 8 | } 9 | /* Copy & Lists */ 10 | p { 11 | line-height: 2.25rem; 12 | margin-top: 1.5rem; 13 | margin-bottom: 0; 14 | } 15 | ul, 16 | ol { 17 | margin-top: 1.5rem; 18 | margin-bottom: 1.5rem; 19 | } 20 | ul li, 21 | ol li { 22 | line-height: 1.5rem; 23 | } 24 | ul ul, 25 | ol ul, 26 | ul ol, 27 | ol ol { 28 | margin-top: 0; 29 | margin-bottom: 0; 30 | } 31 | blockquote { 32 | line-height: 1.5rem; 33 | margin-top: 1.5rem; 34 | margin-bottom: 1.5rem; 35 | } 36 | /* Headings */ 37 | h1, 38 | h2, 39 | h3, 40 | h4, 41 | h5, 42 | h6 { 43 | /* Change heading typefaces here */ 44 | font-family: sans-serif; 45 | margin-top: 1.5rem; 46 | margin-bottom: 0; 47 | line-height: 1.5rem; 48 | } 49 | h1 { 50 | font-size: 4.242rem; 51 | line-height: 4.5rem; 52 | margin-top: 3rem; 53 | } 54 | h2 { 55 | font-size: 2.828rem; 56 | line-height: 3rem; 57 | margin-top: 3rem; 58 | } 59 | h3 { 60 | font-size: 1.414rem; 61 | } 62 | h4 { 63 | font-size: 0.707rem; 64 | } 65 | h5 { 66 | font-size: 0.4713333333333333rem; 67 | } 68 | h6 { 69 | font-size: 0.3535rem; 70 | } 71 | /* Tables */ 72 | table { 73 | margin-top: 1.5rem; 74 | border-spacing: 0px; 75 | border-collapse: collapse; 76 | } 77 | table td, 78 | table th { 79 | padding: 0; 80 | line-height: 33px; 81 | } 82 | /* Code blocks */ 83 | code { 84 | vertical-align: bottom; 85 | } 86 | /* Leading paragraph text */ 87 | .lead { 88 | font-size: 1.414rem; 89 | } 90 | /* Hug the block above you */ 91 | .hug { 92 | margin-top: 0; 93 | } 94 | -------------------------------------------------------------------------------- /htdocs/stylesheets/typebase.css- The starting point for good typography on the web.webloc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | URL 6 | http://devinhunt.github.io/typebase.css/ 7 | 8 | 9 | -------------------------------------------------------------------------------- /htdocs/stylesheets/typespiration.com - A showcase of web typography designs with re.webloc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | URL 6 | http://typespiration.com/ 7 | 8 | 9 | -------------------------------------------------------------------------------- /htdocs/tail.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 | 27 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /htdocs/upload.php: -------------------------------------------------------------------------------- 1 | "; 34 | $uploadOk = 0; 35 | } 36 | } 37 | } 38 | // Check if file already exists 39 | // if (file_exists($target_dir . $_SESSION["unique_ID"] . $_SESSION["target_file"])) { 40 | // $message = $message . "Error: File already exists.
"; 41 | // $uploadOk = 0; 42 | // } 43 | 44 | // Check file size 45 | if ($_FILES["fileToUpload"]["size"] > 104857600) { 46 | $message = $message . "Error: File is too large. Limit = 100Mb
"; 47 | $uploadOk = 0; 48 | } 49 | // Check filetype. md, MD, txt, TXT, zip, and ZIP are allowed. 50 | if($imageFileType != "md" && $imageFileType != "MD" && $imageFileType != "txt" 51 | && $imageFileType != "TXT" && $imageFileType != "zip" && $imageFileType != "ZIP"){ 52 | $message = $message . "Error: Supported filetypes are .md, .txt, and .zip
"; 53 | $uploadOk = 0; 54 | } 55 | // read in output formats 56 | $output2 = 'null'; 57 | $output3 = 'null'; 58 | $output4 = 'null'; 59 | $output5 = 'null'; 60 | $option1 = 'null'; 61 | if (isset($_POST["HTML"])) { 62 | $output2 = 'html'; 63 | } 64 | if (isset($_POST["PDF"])) { 65 | $output3 = 'pdf'; 66 | } 67 | if (isset($_POST["EPUB"])) { 68 | $output4 = 'epub3'; 69 | } 70 | if (isset($_POST["DOCX"])) { 71 | $output5 = 'docx'; 72 | } 73 | if (isset($_POST["Stand-Alone"])) { 74 | $option1 = 'stand-alone'; 75 | } 76 | if (empty($output2) && empty($output3) && empty($output4) && empty($output5)){ 77 | $message = $message . "Error: No output format selected.
"; 78 | $uploadOk = 0; 79 | } 80 | // Check if $uploadOk is set to 0. If so, indicate a general error at least 81 | if ($uploadOk == 0) { 82 | $message = $message . "Error: Your file was not uploaded.
"; 83 | // If everything is OK, try to upload file 84 | } else { 85 | if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $_SESSION["target_dir"] . $_SESSION["unique_ID"] . '/' . $_SESSION["target_file"])) { 86 | $message = $message . "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.
"; 87 | // Download file directly to browser without loading new page. 88 | header("Location: download.php"); 89 | } else { 90 | // If a file was indeed selected to be uploaded and this error is still 91 | // being thrown,the error is more than likely being caused by something 92 | // out of the user's control. 93 | // Make sure PHP's max_upload_size is set to 100Mb and that PHP is the 94 | // owner of and has permission to write to www/ 95 | $message = $message . "Error: There was an error uploading your file.
"; 96 | } 97 | } 98 | 99 | // end upload error checking, and validation 100 | 101 | 102 | // Select a stylesheet to be applied. 103 | // Pandoc ignores stylesheets for PDF and DOCX formats natively. 104 | // This fact is exploited in Pandoc call in convert.sh 105 | $stylesheet = $_POST['stylesheet']; // empty string corresponds to "false" 106 | if ($stylesheet == "custom") { 107 | $stylesheet = 'custom'; 108 | } 109 | if ($stylesheet == "IEEE") { 110 | $stylesheet = 'stylesheets/ieee.css'; 111 | } 112 | if ($stylesheet == "ACM") { 113 | $stylesheet = 'stylesheets/acm.css'; 114 | } 115 | if ($stylesheet == "Typebase") { 116 | $stylesheet = 'stylesheets/typebase.css'; 117 | } 118 | if ($stylesheet == "Getaway") { 119 | $stylesheet = 'stylesheets/getaway.css'; 120 | } 121 | 122 | // Call convert.sh script where the actual conversion takes place. 123 | // Optins here are passed to convert.sh script and their purposes are detailed 124 | // on the first few lines of convert.sh 125 | shell_exec("wait; bash /srv/mdconvert/src/scripts/convert.sh ".escapeshellarg("$target_dir/$unique_ID/")." $stylesheet $output2 $output3 $output4 $output5 $option1"); 126 | 127 | if ($message == ''){ 128 | // When executed without error download file directly to index.php 129 | //header("index.html"); 130 | echo $stylesheet; 131 | } 132 | else { 133 | // Sandwich error message between top and bottom halves of error page. 134 | echo file_get_contents( "errorHead.html" ); 135 | echo $message; //Display accumulated error message. 136 | echo file_get_contents( "errorTail.html" ); 137 | } 138 | 139 | ?> 140 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright 2017 Cody Taylor 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | ;;;;;;;;;;;;;;;;;;; 4 | ; About php.ini ; 5 | ;;;;;;;;;;;;;;;;;;; 6 | ; PHP's initialization file, generally called php.ini, is responsible for 7 | ; configuring many of the aspects of PHP's behavior. 8 | 9 | ; PHP attempts to find and load this configuration from a number of locations. 10 | ; The following is a summary of its search order: 11 | ; 1. SAPI module specific location. 12 | ; 2. The PHPRC environment variable. (As of PHP 5.2.0) 13 | ; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0) 14 | ; 4. Current working directory (except CLI) 15 | ; 5. The web server's directory (for SAPI modules), or directory of PHP 16 | ; (otherwise in Windows) 17 | ; 6. The directory from the --with-config-file-path compile time option, or the 18 | ; Windows directory (C:\windows or C:\winnt) 19 | ; See the PHP docs for more specific information. 20 | ; http://php.net/configuration.file 21 | 22 | ; The syntax of the file is extremely simple. Whitespace and lines 23 | ; beginning with a semicolon are silently ignored (as you probably guessed). 24 | ; Section headers (e.g. [Foo]) are also silently ignored, even though 25 | ; they might mean something in the future. 26 | 27 | ; Directives following the section heading [PATH=/www/mysite] only 28 | ; apply to PHP files in the /www/mysite directory. Directives 29 | ; following the section heading [HOST=www.example.com] only apply to 30 | ; PHP files served from www.example.com. Directives set in these 31 | ; special sections cannot be overridden by user-defined INI files or 32 | ; at runtime. Currently, [PATH=] and [HOST=] sections only work under 33 | ; CGI/FastCGI. 34 | ; http://php.net/ini.sections 35 | 36 | ; Directives are specified using the following syntax: 37 | ; directive = value 38 | ; Directive names are *case sensitive* - foo=bar is different from FOO=bar. 39 | ; Directives are variables used to configure PHP or PHP extensions. 40 | ; There is no name validation. If PHP can't find an expected 41 | ; directive because it is not set or is mistyped, a default value will be used. 42 | 43 | ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one 44 | ; of the INI constants (On, Off, True, False, Yes, No and None) or an expression 45 | ; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a 46 | ; previously set variable or directive (e.g. ${foo}) 47 | 48 | ; Expressions in the INI file are limited to bitwise operators and parentheses: 49 | ; | bitwise OR 50 | ; ^ bitwise XOR 51 | ; & bitwise AND 52 | ; ~ bitwise NOT 53 | ; ! boolean NOT 54 | 55 | ; Boolean flags can be turned on using the values 1, On, True or Yes. 56 | ; They can be turned off using the values 0, Off, False or No. 57 | 58 | ; An empty string can be denoted by simply not writing anything after the equal 59 | ; sign, or by using the None keyword: 60 | 61 | ; foo = ; sets foo to an empty string 62 | ; foo = None ; sets foo to an empty string 63 | ; foo = "None" ; sets foo to the string 'None' 64 | 65 | ; If you use constants in your value, and these constants belong to a 66 | ; dynamically loaded extension (either a PHP extension or a Zend extension), 67 | ; you may only use these constants *after* the line that loads the extension. 68 | 69 | ;;;;;;;;;;;;;;;;;;; 70 | ; About this file ; 71 | ;;;;;;;;;;;;;;;;;;; 72 | ; PHP comes packaged with two INI files. One that is recommended to be used 73 | ; in production environments and one that is recommended to be used in 74 | ; development environments. 75 | 76 | ; php.ini-production contains settings which hold security, performance and 77 | ; best practices at its core. But please be aware, these settings may break 78 | ; compatibility with older or less security conscience applications. We 79 | ; recommending using the production ini in production and testing environments. 80 | 81 | ; php.ini-development is very similar to its production variant, except it is 82 | ; much more verbose when it comes to errors. We recommend using the 83 | ; development version only in development environments, as errors shown to 84 | ; application users can inadvertently leak otherwise secure information. 85 | 86 | ; This is php.ini-production INI file. 87 | 88 | ;;;;;;;;;;;;;;;;;;; 89 | ; Quick Reference ; 90 | ;;;;;;;;;;;;;;;;;;; 91 | ; The following are all the settings which are different in either the production 92 | ; or development versions of the INIs with respect to PHP's default behavior. 93 | ; Please see the actual settings later in the document for more details as to why 94 | ; we recommend these changes in PHP's behavior. 95 | 96 | ; display_errors 97 | ; Default Value: On 98 | ; Development Value: On 99 | ; Production Value: Off 100 | 101 | ; display_startup_errors 102 | ; Default Value: Off 103 | ; Development Value: On 104 | ; Production Value: Off 105 | 106 | ; error_reporting 107 | ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 108 | ; Development Value: E_ALL 109 | ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT 110 | 111 | ; html_errors 112 | ; Default Value: On 113 | ; Development Value: On 114 | ; Production value: On 115 | 116 | ; log_errors 117 | ; Default Value: Off 118 | ; Development Value: On 119 | ; Production Value: On 120 | 121 | ; max_input_time 122 | ; Default Value: -1 (Unlimited) 123 | ; Development Value: 60 (60 seconds) 124 | ; Production Value: 60 (60 seconds) 125 | 126 | ; output_buffering 127 | ; Default Value: Off 128 | ; Development Value: 4096 129 | ; Production Value: 4096 130 | 131 | ; register_argc_argv 132 | ; Default Value: On 133 | ; Development Value: Off 134 | ; Production Value: Off 135 | 136 | ; request_order 137 | ; Default Value: None 138 | ; Development Value: "GP" 139 | ; Production Value: "GP" 140 | 141 | ; session.gc_divisor 142 | ; Default Value: 100 143 | ; Development Value: 1000 144 | ; Production Value: 1000 145 | 146 | ; session.hash_bits_per_character 147 | ; Default Value: 4 148 | ; Development Value: 5 149 | ; Production Value: 5 150 | 151 | ; short_open_tag 152 | ; Default Value: On 153 | ; Development Value: Off 154 | ; Production Value: Off 155 | 156 | ; track_errors 157 | ; Default Value: Off 158 | ; Development Value: On 159 | ; Production Value: Off 160 | 161 | ; url_rewriter.tags 162 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 163 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 164 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 165 | 166 | ; variables_order 167 | ; Default Value: "EGPCS" 168 | ; Development Value: "GPCS" 169 | ; Production Value: "GPCS" 170 | 171 | ;;;;;;;;;;;;;;;;;;;; 172 | ; php.ini Options ; 173 | ;;;;;;;;;;;;;;;;;;;; 174 | ; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" 175 | ;user_ini.filename = ".user.ini" 176 | 177 | ; To disable this feature set this option to empty value 178 | ;user_ini.filename = 179 | 180 | ; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) 181 | ;user_ini.cache_ttl = 300 182 | 183 | ;;;;;;;;;;;;;;;;;;;; 184 | ; Language Options ; 185 | ;;;;;;;;;;;;;;;;;;;; 186 | 187 | ; Enable the PHP scripting language engine under Apache. 188 | ; http://php.net/engine 189 | engine = On 190 | 191 | ; This directive determines whether or not PHP will recognize code between 192 | ; tags as PHP source which should be processed as such. It is 193 | ; generally recommended that should be used and that this feature 194 | ; should be disabled, as enabling it may result in issues when generating XML 195 | ; documents, however this remains supported for backward compatibility reasons. 196 | ; Note that this directive does not control the would work. 308 | ; http://php.net/syntax-highlighting 309 | ;highlight.string = #DD0000 310 | ;highlight.comment = #FF9900 311 | ;highlight.keyword = #007700 312 | ;highlight.default = #0000BB 313 | ;highlight.html = #000000 314 | 315 | ; If enabled, the request will be allowed to complete even if the user aborts 316 | ; the request. Consider enabling it if executing long requests, which may end up 317 | ; being interrupted by the user or a browser timing out. PHP's default behavior 318 | ; is to disable this feature. 319 | ; http://php.net/ignore-user-abort 320 | ;ignore_user_abort = On 321 | 322 | ; Determines the size of the realpath cache to be used by PHP. This value should 323 | ; be increased on systems where PHP opens many files to reflect the quantity of 324 | ; the file operations performed. 325 | ; http://php.net/realpath-cache-size 326 | ;realpath_cache_size = 16k 327 | 328 | ; Duration of time, in seconds for which to cache realpath information for a given 329 | ; file or directory. For systems with rarely changing files, consider increasing this 330 | ; value. 331 | ; http://php.net/realpath-cache-ttl 332 | ;realpath_cache_ttl = 120 333 | 334 | ; Enables or disables the circular reference collector. 335 | ; http://php.net/zend.enable-gc 336 | zend.enable_gc = On 337 | 338 | ; If enabled, scripts may be written in encodings that are incompatible with 339 | ; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such 340 | ; encodings. To use this feature, mbstring extension must be enabled. 341 | ; Default: Off 342 | ;zend.multibyte = Off 343 | 344 | ; Allows to set the default encoding for the scripts. This value will be used 345 | ; unless "declare(encoding=...)" directive appears at the top of the script. 346 | ; Only affects if zend.multibyte is set. 347 | ; Default: "" 348 | ;zend.script_encoding = 349 | 350 | ;;;;;;;;;;;;;;;;; 351 | ; Miscellaneous ; 352 | ;;;;;;;;;;;;;;;;; 353 | 354 | ; Decides whether PHP may expose the fact that it is installed on the server 355 | ; (e.g. by adding its signature to the Web server header). It is no security 356 | ; threat in any way, but it makes it possible to determine whether you use PHP 357 | ; on your server or not. 358 | ; http://php.net/expose-php 359 | expose_php = Off 360 | 361 | ;;;;;;;;;;;;;;;;;;; 362 | ; Resource Limits ; 363 | ;;;;;;;;;;;;;;;;;;; 364 | 365 | ; Maximum execution time of each script, in seconds 366 | ; http://php.net/max-execution-time 367 | ; Note: This directive is hardcoded to 0 for the CLI SAPI 368 | max_execution_time = 30 369 | 370 | ; Maximum amount of time each script may spend parsing request data. It's a good 371 | ; idea to limit this time on productions servers in order to eliminate unexpectedly 372 | ; long running scripts. 373 | ; Note: This directive is hardcoded to -1 for the CLI SAPI 374 | ; Default Value: -1 (Unlimited) 375 | ; Development Value: 60 (60 seconds) 376 | ; Production Value: 60 (60 seconds) 377 | ; http://php.net/max-input-time 378 | max_input_time = 60 379 | 380 | ; Maximum input variable nesting level 381 | ; http://php.net/max-input-nesting-level 382 | ;max_input_nesting_level = 64 383 | 384 | ; How many GET/POST/COOKIE input variables may be accepted 385 | ; max_input_vars = 1000 386 | 387 | ; Maximum amount of memory a script may consume (128MB) 388 | ; http://php.net/memory-limit 389 | memory_limit = 128M 390 | 391 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 392 | ; Error handling and logging ; 393 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 394 | 395 | ; This directive informs PHP of which errors, warnings and notices you would like 396 | ; it to take action for. The recommended way of setting values for this 397 | ; directive is through the use of the error level constants and bitwise 398 | ; operators. The error level constants are below here for convenience as well as 399 | ; some common settings and their meanings. 400 | ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT 401 | ; those related to E_NOTICE and E_STRICT, which together cover best practices and 402 | ; recommended coding standards in PHP. For performance reasons, this is the 403 | ; recommend error reporting setting. Your production server shouldn't be wasting 404 | ; resources complaining about best practices and coding standards. That's what 405 | ; development servers and development settings are for. 406 | ; Note: The php.ini-development file has this setting as E_ALL. This 407 | ; means it pretty much reports everything which is exactly what you want during 408 | ; development and early testing. 409 | ; 410 | ; Error Level Constants: 411 | ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 5.4.0) 412 | ; E_ERROR - fatal run-time errors 413 | ; E_RECOVERABLE_ERROR - almost fatal run-time errors 414 | ; E_WARNING - run-time warnings (non-fatal errors) 415 | ; E_PARSE - compile-time parse errors 416 | ; E_NOTICE - run-time notices (these are warnings which often result 417 | ; from a bug in your code, but it's possible that it was 418 | ; intentional (e.g., using an uninitialized variable and 419 | ; relying on the fact it is automatically initialized to an 420 | ; empty string) 421 | ; E_STRICT - run-time notices, enable to have PHP suggest changes 422 | ; to your code which will ensure the best interoperability 423 | ; and forward compatibility of your code 424 | ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup 425 | ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's 426 | ; initial startup 427 | ; E_COMPILE_ERROR - fatal compile-time errors 428 | ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) 429 | ; E_USER_ERROR - user-generated error message 430 | ; E_USER_WARNING - user-generated warning message 431 | ; E_USER_NOTICE - user-generated notice message 432 | ; E_DEPRECATED - warn about code that will not work in future versions 433 | ; of PHP 434 | ; E_USER_DEPRECATED - user-generated deprecation warnings 435 | ; 436 | ; Common Values: 437 | ; E_ALL (Show all errors, warnings and notices including coding standards.) 438 | ; E_ALL & ~E_NOTICE (Show all errors, except for notices) 439 | ; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) 440 | ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 441 | ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED 442 | ; Development Value: E_ALL 443 | ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT 444 | ; http://php.net/error-reporting 445 | error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 446 | 447 | ; This directive controls whether or not and where PHP will output errors, 448 | ; notices and warnings too. Error output is very useful during development, but 449 | ; it could be very dangerous in production environments. Depending on the code 450 | ; which is triggering the error, sensitive information could potentially leak 451 | ; out of your application such as database usernames and passwords or worse. 452 | ; For production environments, we recommend logging errors rather than 453 | ; sending them to STDOUT. 454 | ; Possible Values: 455 | ; Off = Do not display any errors 456 | ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) 457 | ; On or stdout = Display errors to STDOUT 458 | ; Default Value: On 459 | ; Development Value: On 460 | ; Production Value: Off 461 | ; http://php.net/display-errors 462 | display_errors = Off 463 | 464 | ; The display of errors which occur during PHP's startup sequence are handled 465 | ; separately from display_errors. PHP's default behavior is to suppress those 466 | ; errors from clients. Turning the display of startup errors on can be useful in 467 | ; debugging configuration problems. We strongly recommend you 468 | ; set this to 'off' for production servers. 469 | ; Default Value: Off 470 | ; Development Value: On 471 | ; Production Value: Off 472 | ; http://php.net/display-startup-errors 473 | display_startup_errors = Off 474 | 475 | ; Besides displaying errors, PHP can also log errors to locations such as a 476 | ; server-specific log, STDERR, or a location specified by the error_log 477 | ; directive found below. While errors should not be displayed on productions 478 | ; servers they should still be monitored and logging is a great way to do that. 479 | ; Default Value: Off 480 | ; Development Value: On 481 | ; Production Value: On 482 | ; http://php.net/log-errors 483 | log_errors = On 484 | 485 | ; Set maximum length of log_errors. In error_log information about the source is 486 | ; added. The default is 1024 and 0 allows to not apply any maximum length at all. 487 | ; http://php.net/log-errors-max-len 488 | log_errors_max_len = 1024 489 | 490 | ; Do not log repeated messages. Repeated errors must occur in same file on same 491 | ; line unless ignore_repeated_source is set true. 492 | ; http://php.net/ignore-repeated-errors 493 | ignore_repeated_errors = Off 494 | 495 | ; Ignore source of message when ignoring repeated messages. When this setting 496 | ; is On you will not log errors with repeated messages from different files or 497 | ; source lines. 498 | ; http://php.net/ignore-repeated-source 499 | ignore_repeated_source = Off 500 | 501 | ; If this parameter is set to Off, then memory leaks will not be shown (on 502 | ; stdout or in the log). This has only effect in a debug compile, and if 503 | ; error reporting includes E_WARNING in the allowed list 504 | ; http://php.net/report-memleaks 505 | report_memleaks = On 506 | 507 | ; This setting is on by default. 508 | ;report_zend_debug = 0 509 | 510 | ; Store the last error/warning message in $php_errormsg (boolean). Setting this value 511 | ; to On can assist in debugging and is appropriate for development servers. It should 512 | ; however be disabled on production servers. 513 | ; Default Value: Off 514 | ; Development Value: On 515 | ; Production Value: Off 516 | ; http://php.net/track-errors 517 | track_errors = Off 518 | 519 | ; Turn off normal error reporting and emit XML-RPC error XML 520 | ; http://php.net/xmlrpc-errors 521 | ;xmlrpc_errors = 0 522 | 523 | ; An XML-RPC faultCode 524 | ;xmlrpc_error_number = 0 525 | 526 | ; When PHP displays or logs an error, it has the capability of formatting the 527 | ; error message as HTML for easier reading. This directive controls whether 528 | ; the error message is formatted as HTML or not. 529 | ; Note: This directive is hardcoded to Off for the CLI SAPI 530 | ; Default Value: On 531 | ; Development Value: On 532 | ; Production value: On 533 | ; http://php.net/html-errors 534 | html_errors = On 535 | 536 | ; If html_errors is set to On *and* docref_root is not empty, then PHP 537 | ; produces clickable error messages that direct to a page describing the error 538 | ; or function causing the error in detail. 539 | ; You can download a copy of the PHP manual from http://php.net/docs 540 | ; and change docref_root to the base URL of your local copy including the 541 | ; leading '/'. You must also specify the file extension being used including 542 | ; the dot. PHP's default behavior is to leave these settings empty, in which 543 | ; case no links to documentation are generated. 544 | ; Note: Never use this feature for production boxes. 545 | ; http://php.net/docref-root 546 | ; Examples 547 | ;docref_root = "/phpmanual/" 548 | 549 | ; http://php.net/docref-ext 550 | ;docref_ext = .html 551 | 552 | ; String to output before an error message. PHP's default behavior is to leave 553 | ; this setting blank. 554 | ; http://php.net/error-prepend-string 555 | ; Example: 556 | ;error_prepend_string = "" 557 | 558 | ; String to output after an error message. PHP's default behavior is to leave 559 | ; this setting blank. 560 | ; http://php.net/error-append-string 561 | ; Example: 562 | ;error_append_string = "" 563 | 564 | ; Log errors to specified file. PHP's default behavior is to leave this value 565 | ; empty. 566 | ; http://php.net/error-log 567 | ; Example: 568 | ;error_log = php_errors.log 569 | ; Log errors to syslog (Event Log on Windows). 570 | ;error_log = syslog 571 | 572 | ;windows.show_crt_warning 573 | ; Default value: 0 574 | ; Development value: 0 575 | ; Production value: 0 576 | 577 | ;;;;;;;;;;;;;;;;; 578 | ; Data Handling ; 579 | ;;;;;;;;;;;;;;;;; 580 | 581 | ; The separator used in PHP generated URLs to separate arguments. 582 | ; PHP's default setting is "&". 583 | ; http://php.net/arg-separator.output 584 | ; Example: 585 | ;arg_separator.output = "&" 586 | 587 | ; List of separator(s) used by PHP to parse input URLs into variables. 588 | ; PHP's default setting is "&". 589 | ; NOTE: Every character in this directive is considered as separator! 590 | ; http://php.net/arg-separator.input 591 | ; Example: 592 | ;arg_separator.input = ";&" 593 | 594 | ; This directive determines which super global arrays are registered when PHP 595 | ; starts up. G,P,C,E & S are abbreviations for the following respective super 596 | ; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty 597 | ; paid for the registration of these arrays and because ENV is not as commonly 598 | ; used as the others, ENV is not recommended on productions servers. You 599 | ; can still get access to the environment variables through getenv() should you 600 | ; need to. 601 | ; Default Value: "EGPCS" 602 | ; Development Value: "GPCS" 603 | ; Production Value: "GPCS"; 604 | ; http://php.net/variables-order 605 | variables_order = "GPCS" 606 | 607 | ; This directive determines which super global data (G,P & C) should be 608 | ; registered into the super global array REQUEST. If so, it also determines 609 | ; the order in which that data is registered. The values for this directive 610 | ; are specified in the same manner as the variables_order directive, 611 | ; EXCEPT one. Leaving this value empty will cause PHP to use the value set 612 | ; in the variables_order directive. It does not mean it will leave the super 613 | ; globals array REQUEST empty. 614 | ; Default Value: None 615 | ; Development Value: "GP" 616 | ; Production Value: "GP" 617 | ; http://php.net/request-order 618 | request_order = "GP" 619 | 620 | ; This directive determines whether PHP registers $argv & $argc each time it 621 | ; runs. $argv contains an array of all the arguments passed to PHP when a script 622 | ; is invoked. $argc contains an integer representing the number of arguments 623 | ; that were passed when the script was invoked. These arrays are extremely 624 | ; useful when running scripts from the command line. When this directive is 625 | ; enabled, registering these variables consumes CPU cycles and memory each time 626 | ; a script is executed. For performance reasons, this feature should be disabled 627 | ; on production servers. 628 | ; Note: This directive is hardcoded to On for the CLI SAPI 629 | ; Default Value: On 630 | ; Development Value: Off 631 | ; Production Value: Off 632 | ; http://php.net/register-argc-argv 633 | register_argc_argv = Off 634 | 635 | ; When enabled, the ENV, REQUEST and SERVER variables are created when they're 636 | ; first used (Just In Time) instead of when the script starts. If these 637 | ; variables are not used within a script, having this directive on will result 638 | ; in a performance gain. The PHP directive register_argc_argv must be disabled 639 | ; for this directive to have any affect. 640 | ; http://php.net/auto-globals-jit 641 | auto_globals_jit = On 642 | 643 | ; Whether PHP will read the POST data. 644 | ; This option is enabled by default. 645 | ; Most likely, you won't want to disable this option globally. It causes $_POST 646 | ; and $_FILES to always be empty; the only way you will be able to read the 647 | ; POST data will be through the php://input stream wrapper. This can be useful 648 | ; to proxy requests or to process the POST data in a memory efficient fashion. 649 | ; http://php.net/enable-post-data-reading 650 | ;enable_post_data_reading = Off 651 | 652 | ; Maximum size of POST data that PHP will accept. 653 | ; Its value may be 0 to disable the limit. It is ignored if POST data reading 654 | ; is disabled through enable_post_data_reading. 655 | ; http://php.net/post-max-size 656 | post_max_size = 128M 657 | 658 | ; Automatically add files before PHP document. 659 | ; http://php.net/auto-prepend-file 660 | auto_prepend_file = 661 | 662 | ; Automatically add files after PHP document. 663 | ; http://php.net/auto-append-file 664 | auto_append_file = 665 | 666 | ; By default, PHP will output a media type using the Content-Type header. To 667 | ; disable this, simply set it to be empty. 668 | ; 669 | ; PHP's built-in default media type is set to text/html. 670 | ; http://php.net/default-mimetype 671 | default_mimetype = "text/html" 672 | 673 | ; PHP's default character set is set to UTF-8. 674 | ; http://php.net/default-charset 675 | default_charset = "UTF-8" 676 | 677 | ; PHP internal character encoding is set to empty. 678 | ; If empty, default_charset is used. 679 | ; http://php.net/internal-encoding 680 | ;internal_encoding = 681 | 682 | ; PHP input character encoding is set to empty. 683 | ; If empty, default_charset is used. 684 | ; http://php.net/input-encoding 685 | ;input_encoding = 686 | 687 | ; PHP output character encoding is set to empty. 688 | ; If empty, default_charset is used. 689 | ; See also output_buffer. 690 | ; http://php.net/output-encoding 691 | ;output_encoding = 692 | 693 | ;;;;;;;;;;;;;;;;;;;;;;;;; 694 | ; Paths and Directories ; 695 | ;;;;;;;;;;;;;;;;;;;;;;;;; 696 | 697 | ; UNIX: "/path1:/path2" 698 | ;include_path = ".:/usr/share/php" 699 | ; 700 | ; Windows: "\path1;\path2" 701 | ;include_path = ".;c:\php\includes" 702 | ; 703 | ; PHP's default setting for include_path is ".;/path/to/php/pear" 704 | ; http://php.net/include-path 705 | 706 | ; The root of the PHP pages, used only if nonempty. 707 | ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root 708 | ; if you are running php as a CGI under any web server (other than IIS) 709 | ; see documentation for security issues. The alternate is to use the 710 | ; cgi.force_redirect configuration below 711 | ; http://php.net/doc-root 712 | doc_root = 713 | 714 | ; The directory under which PHP opens the script using /~username used only 715 | ; if nonempty. 716 | ; http://php.net/user-dir 717 | user_dir = 718 | 719 | ; Directory in which the loadable extensions (modules) reside. 720 | ; http://php.net/extension-dir 721 | ; extension_dir = "./" 722 | ; On windows: 723 | ; extension_dir = "ext" 724 | 725 | ; Directory where the temporary files should be placed. 726 | ; Defaults to the system default (see sys_get_temp_dir) 727 | ; sys_temp_dir = "/tmp" 728 | 729 | ; Whether or not to enable the dl() function. The dl() function does NOT work 730 | ; properly in multithreaded servers, such as IIS or Zeus, and is automatically 731 | ; disabled on them. 732 | ; http://php.net/enable-dl 733 | enable_dl = Off 734 | 735 | ; cgi.force_redirect is necessary to provide security running PHP as a CGI under 736 | ; most web servers. Left undefined, PHP turns this on by default. You can 737 | ; turn it off here AT YOUR OWN RISK 738 | ; **You CAN safely turn this off for IIS, in fact, you MUST.** 739 | ; http://php.net/cgi.force-redirect 740 | ;cgi.force_redirect = 1 741 | 742 | ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with 743 | ; every request. PHP's default behavior is to disable this feature. 744 | ;cgi.nph = 1 745 | 746 | ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape 747 | ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP 748 | ; will look for to know it is OK to continue execution. Setting this variable MAY 749 | ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. 750 | ; http://php.net/cgi.redirect-status-env 751 | ;cgi.redirect_status_env = 752 | 753 | ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's 754 | ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok 755 | ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting 756 | ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting 757 | ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts 758 | ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. 759 | ; http://php.net/cgi.fix-pathinfo 760 | ;cgi.fix_pathinfo=1 761 | 762 | ; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside 763 | ; of the web tree and people will not be able to circumvent .htaccess security. 764 | ; http://php.net/cgi.dicard-path 765 | ;cgi.discard_path=1 766 | 767 | ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate 768 | ; security tokens of the calling client. This allows IIS to define the 769 | ; security context that the request runs under. mod_fastcgi under Apache 770 | ; does not currently support this feature (03/17/2002) 771 | ; Set to 1 if running under IIS. Default is zero. 772 | ; http://php.net/fastcgi.impersonate 773 | ;fastcgi.impersonate = 1 774 | 775 | ; Disable logging through FastCGI connection. PHP's default behavior is to enable 776 | ; this feature. 777 | ;fastcgi.logging = 0 778 | 779 | ; cgi.rfc2616_headers configuration option tells PHP what type of headers to 780 | ; use when sending HTTP response code. If set to 0, PHP sends Status: header that 781 | ; is supported by Apache. When this option is set to 1, PHP will send 782 | ; RFC2616 compliant header. 783 | ; Default is zero. 784 | ; http://php.net/cgi.rfc2616-headers 785 | ;cgi.rfc2616_headers = 0 786 | 787 | ; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! 788 | ; (shebang) at the top of the running script. This line might be needed if the 789 | ; script support running both as stand-alone script and via PHP CGI<. PHP in CGI 790 | ; mode skips this line and ignores its content if this directive is turned on. 791 | ; http://php.net/cgi.check-shebang-line 792 | ;cgi.check_shebang_line=1 793 | 794 | ;;;;;;;;;;;;;;;; 795 | ; File Uploads ; 796 | ;;;;;;;;;;;;;;;; 797 | 798 | ; Whether to allow HTTP file uploads. 799 | ; http://php.net/file-uploads 800 | file_uploads = On 801 | 802 | ; Temporary directory for HTTP uploaded files (will use system default if not 803 | ; specified). 804 | ; http://php.net/upload-tmp-dir 805 | ;upload_tmp_dir = 806 | 807 | ; Maximum allowed size for uploaded files. 808 | ; http://php.net/upload-max-filesize 809 | upload_max_filesize = 100M 810 | 811 | ; Maximum number of files that can be uploaded via a single request 812 | max_file_uploads = 20 813 | 814 | ;;;;;;;;;;;;;;;;;; 815 | ; Fopen wrappers ; 816 | ;;;;;;;;;;;;;;;;;; 817 | 818 | ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. 819 | ; http://php.net/allow-url-fopen 820 | allow_url_fopen = On 821 | 822 | ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. 823 | ; http://php.net/allow-url-include 824 | allow_url_include = Off 825 | 826 | ; Define the anonymous ftp password (your email address). PHP's default setting 827 | ; for this is empty. 828 | ; http://php.net/from 829 | ;from="john@doe.com" 830 | 831 | ; Define the User-Agent string. PHP's default setting for this is empty. 832 | ; http://php.net/user-agent 833 | ;user_agent="PHP" 834 | 835 | ; Default timeout for socket based streams (seconds) 836 | ; http://php.net/default-socket-timeout 837 | default_socket_timeout = 60 838 | 839 | ; If your scripts have to deal with files from Macintosh systems, 840 | ; or you are running on a Mac and need to deal with files from 841 | ; unix or win32 systems, setting this flag will cause PHP to 842 | ; automatically detect the EOL character in those files so that 843 | ; fgets() and file() will work regardless of the source of the file. 844 | ; http://php.net/auto-detect-line-endings 845 | ;auto_detect_line_endings = Off 846 | 847 | ;;;;;;;;;;;;;;;;;;;;;; 848 | ; Dynamic Extensions ; 849 | ;;;;;;;;;;;;;;;;;;;;;; 850 | 851 | ; If you wish to have an extension loaded automatically, use the following 852 | ; syntax: 853 | ; 854 | ; extension=modulename.extension 855 | ; 856 | ; For example, on Windows: 857 | ; 858 | ; extension=msql.dll 859 | ; 860 | ; ... or under UNIX: 861 | ; 862 | ; extension=msql.so 863 | ; 864 | ; ... or with a path: 865 | ; 866 | ; extension=/path/to/extension/msql.so 867 | ; 868 | ; If you only provide the name of the extension, PHP will look for it in its 869 | ; default extension directory. 870 | ; 871 | ; Windows Extensions 872 | ; Note that ODBC support is built in, so no dll is needed for it. 873 | ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+) 874 | ; extension folders as well as the separate PECL DLL download (PHP 5+). 875 | ; Be sure to appropriately set the extension_dir directive. 876 | ; 877 | ;extension=php_bz2.dll 878 | ;extension=php_curl.dll 879 | ;extension=php_fileinfo.dll 880 | ;extension=php_ftp.dll 881 | ;extension=php_gd2.dll 882 | ;extension=php_gettext.dll 883 | ;extension=php_gmp.dll 884 | ;extension=php_intl.dll 885 | ;extension=php_imap.dll 886 | ;extension=php_interbase.dll 887 | ;extension=php_ldap.dll 888 | ;extension=php_mbstring.dll 889 | ;extension=php_exif.dll ; Must be after mbstring as it depends on it 890 | ;extension=php_mysqli.dll 891 | ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client 892 | ;extension=php_openssl.dll 893 | ;extension=php_pdo_firebird.dll 894 | ;extension=php_pdo_mysql.dll 895 | ;extension=php_pdo_oci.dll 896 | ;extension=php_pdo_odbc.dll 897 | ;extension=php_pdo_pgsql.dll 898 | ;extension=php_pdo_sqlite.dll 899 | ;extension=php_pgsql.dll 900 | ;extension=php_shmop.dll 901 | 902 | ; The MIBS data available in the PHP distribution must be installed. 903 | ; See http://www.php.net/manual/en/snmp.installation.php 904 | ;extension=php_snmp.dll 905 | 906 | ;extension=php_soap.dll 907 | ;extension=php_sockets.dll 908 | ;extension=php_sqlite3.dll 909 | ;extension=php_tidy.dll 910 | ;extension=php_xmlrpc.dll 911 | ;extension=php_xsl.dll 912 | 913 | ;;;;;;;;;;;;;;;;;;; 914 | ; Module Settings ; 915 | ;;;;;;;;;;;;;;;;;;; 916 | 917 | [CLI Server] 918 | ; Whether the CLI web server uses ANSI color coding in its terminal output. 919 | cli_server.color = On 920 | 921 | [Date] 922 | ; Defines the default timezone used by the date functions 923 | ; http://php.net/date.timezone 924 | ;date.timezone = 925 | 926 | ; http://php.net/date.default-latitude 927 | ;date.default_latitude = 31.7667 928 | 929 | ; http://php.net/date.default-longitude 930 | ;date.default_longitude = 35.2333 931 | 932 | ; http://php.net/date.sunrise-zenith 933 | ;date.sunrise_zenith = 90.583333 934 | 935 | ; http://php.net/date.sunset-zenith 936 | ;date.sunset_zenith = 90.583333 937 | 938 | [filter] 939 | ; http://php.net/filter.default 940 | ;filter.default = unsafe_raw 941 | 942 | ; http://php.net/filter.default-flags 943 | ;filter.default_flags = 944 | 945 | [iconv] 946 | ; Use of this INI entry is deprecated, use global input_encoding instead. 947 | ; If empty, default_charset or input_encoding or iconv.input_encoding is used. 948 | ; The precedence is: default_charset < intput_encoding < iconv.input_encoding 949 | ;iconv.input_encoding = 950 | 951 | ; Use of this INI entry is deprecated, use global internal_encoding instead. 952 | ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. 953 | ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding 954 | ;iconv.internal_encoding = 955 | 956 | ; Use of this INI entry is deprecated, use global output_encoding instead. 957 | ; If empty, default_charset or output_encoding or iconv.output_encoding is used. 958 | ; The precedence is: default_charset < output_encoding < iconv.output_encoding 959 | ; To use an output encoding conversion, iconv's output handler must be set 960 | ; otherwise output encoding conversion cannot be performed. 961 | ;iconv.output_encoding = 962 | 963 | [intl] 964 | ;intl.default_locale = 965 | ; This directive allows you to produce PHP errors when some error 966 | ; happens within intl functions. The value is the level of the error produced. 967 | ; Default is 0, which does not produce any errors. 968 | ;intl.error_level = E_WARNING 969 | ;intl.use_exceptions = 0 970 | 971 | [sqlite3] 972 | ;sqlite3.extension_dir = 973 | 974 | [Pcre] 975 | ;PCRE library backtracking limit. 976 | ; http://php.net/pcre.backtrack-limit 977 | ;pcre.backtrack_limit=100000 978 | 979 | ;PCRE library recursion limit. 980 | ;Please note that if you set this value to a high number you may consume all 981 | ;the available process stack and eventually crash PHP (due to reaching the 982 | ;stack size limit imposed by the Operating System). 983 | ; http://php.net/pcre.recursion-limit 984 | ;pcre.recursion_limit=100000 985 | 986 | ;Enables or disables JIT compilation of patterns. This requires the PCRE 987 | ;library to be compiled with JIT support. 988 | ;pcre.jit=1 989 | 990 | [Pdo] 991 | ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" 992 | ; http://php.net/pdo-odbc.connection-pooling 993 | ;pdo_odbc.connection_pooling=strict 994 | 995 | ;pdo_odbc.db2_instance_name 996 | 997 | [Pdo_mysql] 998 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 999 | ; http://php.net/pdo_mysql.cache_size 1000 | pdo_mysql.cache_size = 2000 1001 | 1002 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1003 | ; MySQL defaults. 1004 | ; http://php.net/pdo_mysql.default-socket 1005 | pdo_mysql.default_socket= 1006 | 1007 | [Phar] 1008 | ; http://php.net/phar.readonly 1009 | ;phar.readonly = On 1010 | 1011 | ; http://php.net/phar.require-hash 1012 | ;phar.require_hash = On 1013 | 1014 | ;phar.cache_list = 1015 | 1016 | [mail function] 1017 | ; For Win32 only. 1018 | ; http://php.net/smtp 1019 | SMTP = localhost 1020 | ; http://php.net/smtp-port 1021 | smtp_port = 25 1022 | 1023 | ; For Win32 only. 1024 | ; http://php.net/sendmail-from 1025 | ;sendmail_from = me@example.com 1026 | 1027 | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 1028 | ; http://php.net/sendmail-path 1029 | ;sendmail_path = 1030 | 1031 | ; Force the addition of the specified parameters to be passed as extra parameters 1032 | ; to the sendmail binary. These parameters will always replace the value of 1033 | ; the 5th parameter to mail(). 1034 | ;mail.force_extra_parameters = 1035 | 1036 | ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename 1037 | mail.add_x_header = On 1038 | 1039 | ; The path to a log file that will log all mail() calls. Log entries include 1040 | ; the full path of the script, line number, To address and headers. 1041 | ;mail.log = 1042 | ; Log mail to syslog (Event Log on Windows). 1043 | ;mail.log = syslog 1044 | 1045 | [SQL] 1046 | ; http://php.net/sql.safe-mode 1047 | sql.safe_mode = Off 1048 | 1049 | [ODBC] 1050 | ; http://php.net/odbc.default-db 1051 | ;odbc.default_db = Not yet implemented 1052 | 1053 | ; http://php.net/odbc.default-user 1054 | ;odbc.default_user = Not yet implemented 1055 | 1056 | ; http://php.net/odbc.default-pw 1057 | ;odbc.default_pw = Not yet implemented 1058 | 1059 | ; Controls the ODBC cursor model. 1060 | ; Default: SQL_CURSOR_STATIC (default). 1061 | ;odbc.default_cursortype 1062 | 1063 | ; Allow or prevent persistent links. 1064 | ; http://php.net/odbc.allow-persistent 1065 | odbc.allow_persistent = On 1066 | 1067 | ; Check that a connection is still valid before reuse. 1068 | ; http://php.net/odbc.check-persistent 1069 | odbc.check_persistent = On 1070 | 1071 | ; Maximum number of persistent links. -1 means no limit. 1072 | ; http://php.net/odbc.max-persistent 1073 | odbc.max_persistent = -1 1074 | 1075 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1076 | ; http://php.net/odbc.max-links 1077 | odbc.max_links = -1 1078 | 1079 | ; Handling of LONG fields. Returns number of bytes to variables. 0 means 1080 | ; passthru. 1081 | ; http://php.net/odbc.defaultlrl 1082 | odbc.defaultlrl = 4096 1083 | 1084 | ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. 1085 | ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation 1086 | ; of odbc.defaultlrl and odbc.defaultbinmode 1087 | ; http://php.net/odbc.defaultbinmode 1088 | odbc.defaultbinmode = 1 1089 | 1090 | ;birdstep.max_links = -1 1091 | 1092 | [Interbase] 1093 | ; Allow or prevent persistent links. 1094 | ibase.allow_persistent = 1 1095 | 1096 | ; Maximum number of persistent links. -1 means no limit. 1097 | ibase.max_persistent = -1 1098 | 1099 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1100 | ibase.max_links = -1 1101 | 1102 | ; Default database name for ibase_connect(). 1103 | ;ibase.default_db = 1104 | 1105 | ; Default username for ibase_connect(). 1106 | ;ibase.default_user = 1107 | 1108 | ; Default password for ibase_connect(). 1109 | ;ibase.default_password = 1110 | 1111 | ; Default charset for ibase_connect(). 1112 | ;ibase.default_charset = 1113 | 1114 | ; Default timestamp format. 1115 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 1116 | 1117 | ; Default date format. 1118 | ibase.dateformat = "%Y-%m-%d" 1119 | 1120 | ; Default time format. 1121 | ibase.timeformat = "%H:%M:%S" 1122 | 1123 | [MySQLi] 1124 | 1125 | ; Maximum number of persistent links. -1 means no limit. 1126 | ; http://php.net/mysqli.max-persistent 1127 | mysqli.max_persistent = -1 1128 | 1129 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 1130 | ; http://php.net/mysqli.allow_local_infile 1131 | ;mysqli.allow_local_infile = On 1132 | 1133 | ; Allow or prevent persistent links. 1134 | ; http://php.net/mysqli.allow-persistent 1135 | mysqli.allow_persistent = On 1136 | 1137 | ; Maximum number of links. -1 means no limit. 1138 | ; http://php.net/mysqli.max-links 1139 | mysqli.max_links = -1 1140 | 1141 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 1142 | ; http://php.net/mysqli.cache_size 1143 | mysqli.cache_size = 2000 1144 | 1145 | ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use 1146 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 1147 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 1148 | ; at MYSQL_PORT. 1149 | ; http://php.net/mysqli.default-port 1150 | mysqli.default_port = 3306 1151 | 1152 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1153 | ; MySQL defaults. 1154 | ; http://php.net/mysqli.default-socket 1155 | mysqli.default_socket = 1156 | 1157 | ; Default host for mysql_connect() (doesn't apply in safe mode). 1158 | ; http://php.net/mysqli.default-host 1159 | mysqli.default_host = 1160 | 1161 | ; Default user for mysql_connect() (doesn't apply in safe mode). 1162 | ; http://php.net/mysqli.default-user 1163 | mysqli.default_user = 1164 | 1165 | ; Default password for mysqli_connect() (doesn't apply in safe mode). 1166 | ; Note that this is generally a *bad* idea to store passwords in this file. 1167 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") 1168 | ; and reveal this password! And of course, any users with read access to this 1169 | ; file will be able to reveal the password as well. 1170 | ; http://php.net/mysqli.default-pw 1171 | mysqli.default_pw = 1172 | 1173 | ; Allow or prevent reconnect 1174 | mysqli.reconnect = Off 1175 | 1176 | [mysqlnd] 1177 | ; Enable / Disable collection of general statistics by mysqlnd which can be 1178 | ; used to tune and monitor MySQL operations. 1179 | ; http://php.net/mysqlnd.collect_statistics 1180 | mysqlnd.collect_statistics = On 1181 | 1182 | ; Enable / Disable collection of memory usage statistics by mysqlnd which can be 1183 | ; used to tune and monitor MySQL operations. 1184 | ; http://php.net/mysqlnd.collect_memory_statistics 1185 | mysqlnd.collect_memory_statistics = Off 1186 | 1187 | ; Records communication from all extensions using mysqlnd to the specified log 1188 | ; file. 1189 | ; http://php.net/mysqlnd.debug 1190 | ;mysqlnd.debug = 1191 | 1192 | ; Defines which queries will be logged. 1193 | ; http://php.net/mysqlnd.log_mask 1194 | ;mysqlnd.log_mask = 0 1195 | 1196 | ; Default size of the mysqlnd memory pool, which is used by result sets. 1197 | ; http://php.net/mysqlnd.mempool_default_size 1198 | ;mysqlnd.mempool_default_size = 16000 1199 | 1200 | ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. 1201 | ; http://php.net/mysqlnd.net_cmd_buffer_size 1202 | ;mysqlnd.net_cmd_buffer_size = 2048 1203 | 1204 | ; Size of a pre-allocated buffer used for reading data sent by the server in 1205 | ; bytes. 1206 | ; http://php.net/mysqlnd.net_read_buffer_size 1207 | ;mysqlnd.net_read_buffer_size = 32768 1208 | 1209 | ; Timeout for network requests in seconds. 1210 | ; http://php.net/mysqlnd.net_read_timeout 1211 | ;mysqlnd.net_read_timeout = 31536000 1212 | 1213 | ; SHA-256 Authentication Plugin related. File with the MySQL server public RSA 1214 | ; key. 1215 | ; http://php.net/mysqlnd.sha256_server_public_key 1216 | ;mysqlnd.sha256_server_public_key = 1217 | 1218 | [OCI8] 1219 | 1220 | ; Connection: Enables privileged connections using external 1221 | ; credentials (OCI_SYSOPER, OCI_SYSDBA) 1222 | ; http://php.net/oci8.privileged-connect 1223 | ;oci8.privileged_connect = Off 1224 | 1225 | ; Connection: The maximum number of persistent OCI8 connections per 1226 | ; process. Using -1 means no limit. 1227 | ; http://php.net/oci8.max-persistent 1228 | ;oci8.max_persistent = -1 1229 | 1230 | ; Connection: The maximum number of seconds a process is allowed to 1231 | ; maintain an idle persistent connection. Using -1 means idle 1232 | ; persistent connections will be maintained forever. 1233 | ; http://php.net/oci8.persistent-timeout 1234 | ;oci8.persistent_timeout = -1 1235 | 1236 | ; Connection: The number of seconds that must pass before issuing a 1237 | ; ping during oci_pconnect() to check the connection validity. When 1238 | ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables 1239 | ; pings completely. 1240 | ; http://php.net/oci8.ping-interval 1241 | ;oci8.ping_interval = 60 1242 | 1243 | ; Connection: Set this to a user chosen connection class to be used 1244 | ; for all pooled server requests with Oracle 11g Database Resident 1245 | ; Connection Pooling (DRCP). To use DRCP, this value should be set to 1246 | ; the same string for all web servers running the same application, 1247 | ; the database pool must be configured, and the connection string must 1248 | ; specify to use a pooled server. 1249 | ;oci8.connection_class = 1250 | 1251 | ; High Availability: Using On lets PHP receive Fast Application 1252 | ; Notification (FAN) events generated when a database node fails. The 1253 | ; database must also be configured to post FAN events. 1254 | ;oci8.events = Off 1255 | 1256 | ; Tuning: This option enables statement caching, and specifies how 1257 | ; many statements to cache. Using 0 disables statement caching. 1258 | ; http://php.net/oci8.statement-cache-size 1259 | ;oci8.statement_cache_size = 20 1260 | 1261 | ; Tuning: Enables statement prefetching and sets the default number of 1262 | ; rows that will be fetched automatically after statement execution. 1263 | ; http://php.net/oci8.default-prefetch 1264 | ;oci8.default_prefetch = 100 1265 | 1266 | ; Compatibility. Using On means oci_close() will not close 1267 | ; oci_connect() and oci_new_connect() connections. 1268 | ; http://php.net/oci8.old-oci-close-semantics 1269 | ;oci8.old_oci_close_semantics = Off 1270 | 1271 | [PostgreSQL] 1272 | ; Allow or prevent persistent links. 1273 | ; http://php.net/pgsql.allow-persistent 1274 | pgsql.allow_persistent = On 1275 | 1276 | ; Detect broken persistent links always with pg_pconnect(). 1277 | ; Auto reset feature requires a little overheads. 1278 | ; http://php.net/pgsql.auto-reset-persistent 1279 | pgsql.auto_reset_persistent = Off 1280 | 1281 | ; Maximum number of persistent links. -1 means no limit. 1282 | ; http://php.net/pgsql.max-persistent 1283 | pgsql.max_persistent = -1 1284 | 1285 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1286 | ; http://php.net/pgsql.max-links 1287 | pgsql.max_links = -1 1288 | 1289 | ; Ignore PostgreSQL backends Notice message or not. 1290 | ; Notice message logging require a little overheads. 1291 | ; http://php.net/pgsql.ignore-notice 1292 | pgsql.ignore_notice = 0 1293 | 1294 | ; Log PostgreSQL backends Notice message or not. 1295 | ; Unless pgsql.ignore_notice=0, module cannot log notice message. 1296 | ; http://php.net/pgsql.log-notice 1297 | pgsql.log_notice = 0 1298 | 1299 | [bcmath] 1300 | ; Number of decimal digits for all bcmath functions. 1301 | ; http://php.net/bcmath.scale 1302 | bcmath.scale = 0 1303 | 1304 | [browscap] 1305 | ; http://php.net/browscap 1306 | ;browscap = extra/browscap.ini 1307 | 1308 | [Session] 1309 | ; Handler used to store/retrieve data. 1310 | ; http://php.net/session.save-handler 1311 | session.save_handler = files 1312 | 1313 | ; Argument passed to save_handler. In the case of files, this is the path 1314 | ; where data files are stored. Note: Windows users have to change this 1315 | ; variable in order to use PHP's session functions. 1316 | ; 1317 | ; The path can be defined as: 1318 | ; 1319 | ; session.save_path = "N;/path" 1320 | ; 1321 | ; where N is an integer. Instead of storing all the session files in 1322 | ; /path, what this will do is use subdirectories N-levels deep, and 1323 | ; store the session data in those directories. This is useful if 1324 | ; your OS has problems with many files in one directory, and is 1325 | ; a more efficient layout for servers that handle many sessions. 1326 | ; 1327 | ; NOTE 1: PHP will not create this directory structure automatically. 1328 | ; You can use the script in the ext/session dir for that purpose. 1329 | ; NOTE 2: See the section on garbage collection below if you choose to 1330 | ; use subdirectories for session storage 1331 | ; 1332 | ; The file storage module creates files using mode 600 by default. 1333 | ; You can change that by using 1334 | ; 1335 | ; session.save_path = "N;MODE;/path" 1336 | ; 1337 | ; where MODE is the octal representation of the mode. Note that this 1338 | ; does not overwrite the process's umask. 1339 | ; http://php.net/session.save-path 1340 | ;session.save_path = "/var/lib/php/sessions" 1341 | 1342 | ; Whether to use strict session mode. 1343 | ; Strict session mode does not accept uninitialized session ID and regenerate 1344 | ; session ID if browser sends uninitialized session ID. Strict mode protects 1345 | ; applications from session fixation via session adoption vulnerability. It is 1346 | ; disabled by default for maximum compatibility, but enabling it is encouraged. 1347 | ; https://wiki.php.net/rfc/strict_sessions 1348 | session.use_strict_mode = 0 1349 | 1350 | ; Whether to use cookies. 1351 | ; http://php.net/session.use-cookies 1352 | session.use_cookies = 1 1353 | 1354 | ; http://php.net/session.cookie-secure 1355 | ;session.cookie_secure = 1356 | 1357 | ; This option forces PHP to fetch and use a cookie for storing and maintaining 1358 | ; the session id. We encourage this operation as it's very helpful in combating 1359 | ; session hijacking when not specifying and managing your own session id. It is 1360 | ; not the be-all and end-all of session hijacking defense, but it's a good start. 1361 | ; http://php.net/session.use-only-cookies 1362 | session.use_only_cookies = 1 1363 | 1364 | ; Name of the session (used as cookie name). 1365 | ; http://php.net/session.name 1366 | session.name = PHPSESSID 1367 | 1368 | ; Initialize session on request startup. 1369 | ; http://php.net/session.auto-start 1370 | session.auto_start = 0 1371 | 1372 | ; Lifetime in seconds of cookie or, if 0, until browser is restarted. 1373 | ; http://php.net/session.cookie-lifetime 1374 | session.cookie_lifetime = 0 1375 | 1376 | ; The path for which the cookie is valid. 1377 | ; http://php.net/session.cookie-path 1378 | session.cookie_path = / 1379 | 1380 | ; The domain for which the cookie is valid. 1381 | ; http://php.net/session.cookie-domain 1382 | session.cookie_domain = 1383 | 1384 | ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. 1385 | ; http://php.net/session.cookie-httponly 1386 | session.cookie_httponly = 1387 | 1388 | ; Handler used to serialize data. php is the standard serializer of PHP. 1389 | ; http://php.net/session.serialize-handler 1390 | session.serialize_handler = php 1391 | 1392 | ; Defines the probability that the 'garbage collection' process is started 1393 | ; on every session initialization. The probability is calculated by using 1394 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator 1395 | ; and gc_divisor is the denominator in the equation. Setting this value to 1 1396 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1397 | ; the gc will run on any give request. 1398 | ; Default Value: 1 1399 | ; Development Value: 1 1400 | ; Production Value: 1 1401 | ; http://php.net/session.gc-probability 1402 | session.gc_probability = 0 1403 | 1404 | ; Defines the probability that the 'garbage collection' process is started on every 1405 | ; session initialization. The probability is calculated by using the following equation: 1406 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and 1407 | ; session.gc_divisor is the denominator in the equation. Setting this value to 1 1408 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1409 | ; the gc will run on any give request. Increasing this value to 1000 will give you 1410 | ; a 0.1% chance the gc will run on any give request. For high volume production servers, 1411 | ; this is a more efficient approach. 1412 | ; Default Value: 100 1413 | ; Development Value: 1000 1414 | ; Production Value: 1000 1415 | ; http://php.net/session.gc-divisor 1416 | session.gc_divisor = 1000 1417 | 1418 | ; After this number of seconds, stored data will be seen as 'garbage' and 1419 | ; cleaned up by the garbage collection process. 1420 | ; http://php.net/session.gc-maxlifetime 1421 | session.gc_maxlifetime = 1440 1422 | 1423 | ; NOTE: If you are using the subdirectory option for storing session files 1424 | ; (see session.save_path above), then garbage collection does *not* 1425 | ; happen automatically. You will need to do your own garbage 1426 | ; collection through a shell script, cron entry, or some other method. 1427 | ; For example, the following script would is the equivalent of 1428 | ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): 1429 | ; find /path/to/sessions -cmin +24 -type f | xargs rm 1430 | 1431 | ; Check HTTP Referer to invalidate externally stored URLs containing ids. 1432 | ; HTTP_REFERER has to contain this substring for the session to be 1433 | ; considered as valid. 1434 | ; http://php.net/session.referer-check 1435 | session.referer_check = 1436 | 1437 | ; How many bytes to read from the file. 1438 | ; http://php.net/session.entropy-length 1439 | ;session.entropy_length = 32 1440 | 1441 | ; Specified here to create the session id. 1442 | ; http://php.net/session.entropy-file 1443 | ; Defaults to /dev/urandom 1444 | ; On systems that don't have /dev/urandom but do have /dev/arandom, this will default to /dev/arandom 1445 | ; If neither are found at compile time, the default is no entropy file. 1446 | ; On windows, setting the entropy_length setting will activate the 1447 | ; Windows random source (using the CryptoAPI) 1448 | ;session.entropy_file = /dev/urandom 1449 | 1450 | ; Set to {nocache,private,public,} to determine HTTP caching aspects 1451 | ; or leave this empty to avoid sending anti-caching headers. 1452 | ; http://php.net/session.cache-limiter 1453 | session.cache_limiter = nocache 1454 | 1455 | ; Document expires after n minutes. 1456 | ; http://php.net/session.cache-expire 1457 | session.cache_expire = 180 1458 | 1459 | ; trans sid support is disabled by default. 1460 | ; Use of trans sid may risk your users' security. 1461 | ; Use this option with caution. 1462 | ; - User may send URL contains active session ID 1463 | ; to other person via. email/irc/etc. 1464 | ; - URL that contains active session ID may be stored 1465 | ; in publicly accessible computer. 1466 | ; - User may access your site with the same session ID 1467 | ; always using URL stored in browser's history or bookmarks. 1468 | ; http://php.net/session.use-trans-sid 1469 | session.use_trans_sid = 0 1470 | 1471 | ; Select a hash function for use in generating session ids. 1472 | ; Possible Values 1473 | ; 0 (MD5 128 bits) 1474 | ; 1 (SHA-1 160 bits) 1475 | ; This option may also be set to the name of any hash function supported by 1476 | ; the hash extension. A list of available hashes is returned by the hash_algos() 1477 | ; function. 1478 | ; http://php.net/session.hash-function 1479 | session.hash_function = 0 1480 | 1481 | ; Define how many bits are stored in each character when converting 1482 | ; the binary hash data to something readable. 1483 | ; Possible values: 1484 | ; 4 (4 bits: 0-9, a-f) 1485 | ; 5 (5 bits: 0-9, a-v) 1486 | ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") 1487 | ; Default Value: 4 1488 | ; Development Value: 5 1489 | ; Production Value: 5 1490 | ; http://php.net/session.hash-bits-per-character 1491 | session.hash_bits_per_character = 5 1492 | 1493 | ; The URL rewriter will look for URLs in a defined set of HTML tags. 1494 | ; form/fieldset are special; if you include them here, the rewriter will 1495 | ; add a hidden field with the info which is otherwise appended 1496 | ; to URLs. If you want XHTML conformity, remove the form entry. 1497 | ; Note that all valid entries require a "=", even if no value follows. 1498 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 1499 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1500 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1501 | ; http://php.net/url-rewriter.tags 1502 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 1503 | 1504 | ; Enable upload progress tracking in $_SESSION 1505 | ; Default Value: On 1506 | ; Development Value: On 1507 | ; Production Value: On 1508 | ; http://php.net/session.upload-progress.enabled 1509 | ;session.upload_progress.enabled = On 1510 | 1511 | ; Cleanup the progress information as soon as all POST data has been read 1512 | ; (i.e. upload completed). 1513 | ; Default Value: On 1514 | ; Development Value: On 1515 | ; Production Value: On 1516 | ; http://php.net/session.upload-progress.cleanup 1517 | ;session.upload_progress.cleanup = On 1518 | 1519 | ; A prefix used for the upload progress key in $_SESSION 1520 | ; Default Value: "upload_progress_" 1521 | ; Development Value: "upload_progress_" 1522 | ; Production Value: "upload_progress_" 1523 | ; http://php.net/session.upload-progress.prefix 1524 | ;session.upload_progress.prefix = "upload_progress_" 1525 | 1526 | ; The index name (concatenated with the prefix) in $_SESSION 1527 | ; containing the upload progress information 1528 | ; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" 1529 | ; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" 1530 | ; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" 1531 | ; http://php.net/session.upload-progress.name 1532 | ;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" 1533 | 1534 | ; How frequently the upload progress should be updated. 1535 | ; Given either in percentages (per-file), or in bytes 1536 | ; Default Value: "1%" 1537 | ; Development Value: "1%" 1538 | ; Production Value: "1%" 1539 | ; http://php.net/session.upload-progress.freq 1540 | ;session.upload_progress.freq = "1%" 1541 | 1542 | ; The minimum delay between updates, in seconds 1543 | ; Default Value: 1 1544 | ; Development Value: 1 1545 | ; Production Value: 1 1546 | ; http://php.net/session.upload-progress.min-freq 1547 | ;session.upload_progress.min_freq = "1" 1548 | 1549 | ; Only write session data when session data is changed. Enabled by default. 1550 | ; http://php.net/session.lazy-write 1551 | ;session.lazy_write = On 1552 | 1553 | [Assertion] 1554 | ; Switch whether to compile assertions at all (to have no overhead at run-time) 1555 | ; -1: Do not compile at all 1556 | ; 0: Jump over assertion at run-time 1557 | ; 1: Execute assertions 1558 | ; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) 1559 | ; Default Value: 1 1560 | ; Development Value: 1 1561 | ; Production Value: -1 1562 | ; http://php.net/zend.assertions 1563 | zend.assertions = -1 1564 | 1565 | ; Assert(expr); active by default. 1566 | ; http://php.net/assert.active 1567 | ;assert.active = On 1568 | 1569 | ; Throw an AssertationException on failed assertions 1570 | ; http://php.net/assert.exception 1571 | ;assert.exception = On 1572 | 1573 | ; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) 1574 | ; http://php.net/assert.warning 1575 | ;assert.warning = On 1576 | 1577 | ; Don't bail out by default. 1578 | ; http://php.net/assert.bail 1579 | ;assert.bail = Off 1580 | 1581 | ; User-function to be called if an assertion fails. 1582 | ; http://php.net/assert.callback 1583 | ;assert.callback = 0 1584 | 1585 | ; Eval the expression with current error_reporting(). Set to true if you want 1586 | ; error_reporting(0) around the eval(). 1587 | ; http://php.net/assert.quiet-eval 1588 | ;assert.quiet_eval = 0 1589 | 1590 | [COM] 1591 | ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs 1592 | ; http://php.net/com.typelib-file 1593 | ;com.typelib_file = 1594 | 1595 | ; allow Distributed-COM calls 1596 | ; http://php.net/com.allow-dcom 1597 | ;com.allow_dcom = true 1598 | 1599 | ; autoregister constants of a components typlib on com_load() 1600 | ; http://php.net/com.autoregister-typelib 1601 | ;com.autoregister_typelib = true 1602 | 1603 | ; register constants casesensitive 1604 | ; http://php.net/com.autoregister-casesensitive 1605 | ;com.autoregister_casesensitive = false 1606 | 1607 | ; show warnings on duplicate constant registrations 1608 | ; http://php.net/com.autoregister-verbose 1609 | ;com.autoregister_verbose = true 1610 | 1611 | ; The default character set code-page to use when passing strings to and from COM objects. 1612 | ; Default: system ANSI code page 1613 | ;com.code_page= 1614 | 1615 | [mbstring] 1616 | ; language for internal character representation. 1617 | ; This affects mb_send_mail() and mbstring.detect_order. 1618 | ; http://php.net/mbstring.language 1619 | ;mbstring.language = Japanese 1620 | 1621 | ; Use of this INI entry is deprecated, use global internal_encoding instead. 1622 | ; internal/script encoding. 1623 | ; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) 1624 | ; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. 1625 | ; The precedence is: default_charset < internal_encoding < iconv.internal_encoding 1626 | ;mbstring.internal_encoding = 1627 | 1628 | ; Use of this INI entry is deprecated, use global input_encoding instead. 1629 | ; http input encoding. 1630 | ; mbstring.encoding_traslation = On is needed to use this setting. 1631 | ; If empty, default_charset or input_encoding or mbstring.input is used. 1632 | ; The precedence is: default_charset < intput_encoding < mbsting.http_input 1633 | ; http://php.net/mbstring.http-input 1634 | ;mbstring.http_input = 1635 | 1636 | ; Use of this INI entry is deprecated, use global output_encoding instead. 1637 | ; http output encoding. 1638 | ; mb_output_handler must be registered as output buffer to function. 1639 | ; If empty, default_charset or output_encoding or mbstring.http_output is used. 1640 | ; The precedence is: default_charset < output_encoding < mbstring.http_output 1641 | ; To use an output encoding conversion, mbstring's output handler must be set 1642 | ; otherwise output encoding conversion cannot be performed. 1643 | ; http://php.net/mbstring.http-output 1644 | ;mbstring.http_output = 1645 | 1646 | ; enable automatic encoding translation according to 1647 | ; mbstring.internal_encoding setting. Input chars are 1648 | ; converted to internal encoding by setting this to On. 1649 | ; Note: Do _not_ use automatic encoding translation for 1650 | ; portable libs/applications. 1651 | ; http://php.net/mbstring.encoding-translation 1652 | ;mbstring.encoding_translation = Off 1653 | 1654 | ; automatic encoding detection order. 1655 | ; "auto" detect order is changed according to mbstring.language 1656 | ; http://php.net/mbstring.detect-order 1657 | ;mbstring.detect_order = auto 1658 | 1659 | ; substitute_character used when character cannot be converted 1660 | ; one from another 1661 | ; http://php.net/mbstring.substitute-character 1662 | ;mbstring.substitute_character = none 1663 | 1664 | ; overload(replace) single byte functions by mbstring functions. 1665 | ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), 1666 | ; etc. Possible values are 0,1,2,4 or combination of them. 1667 | ; For example, 7 for overload everything. 1668 | ; 0: No overload 1669 | ; 1: Overload mail() function 1670 | ; 2: Overload str*() functions 1671 | ; 4: Overload ereg*() functions 1672 | ; http://php.net/mbstring.func-overload 1673 | ;mbstring.func_overload = 0 1674 | 1675 | ; enable strict encoding detection. 1676 | ; Default: Off 1677 | ;mbstring.strict_detection = On 1678 | 1679 | ; This directive specifies the regex pattern of content types for which mb_output_handler() 1680 | ; is activated. 1681 | ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) 1682 | ;mbstring.http_output_conv_mimetype= 1683 | 1684 | [gd] 1685 | ; Tell the jpeg decode to ignore warnings and try to create 1686 | ; a gd image. The warning will then be displayed as notices 1687 | ; disabled by default 1688 | ; http://php.net/gd.jpeg-ignore-warning 1689 | ;gd.jpeg_ignore_warning = 0 1690 | 1691 | [exif] 1692 | ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 1693 | ; With mbstring support this will automatically be converted into the encoding 1694 | ; given by corresponding encode setting. When empty mbstring.internal_encoding 1695 | ; is used. For the decode settings you can distinguish between motorola and 1696 | ; intel byte order. A decode setting cannot be empty. 1697 | ; http://php.net/exif.encode-unicode 1698 | ;exif.encode_unicode = ISO-8859-15 1699 | 1700 | ; http://php.net/exif.decode-unicode-motorola 1701 | ;exif.decode_unicode_motorola = UCS-2BE 1702 | 1703 | ; http://php.net/exif.decode-unicode-intel 1704 | ;exif.decode_unicode_intel = UCS-2LE 1705 | 1706 | ; http://php.net/exif.encode-jis 1707 | ;exif.encode_jis = 1708 | 1709 | ; http://php.net/exif.decode-jis-motorola 1710 | ;exif.decode_jis_motorola = JIS 1711 | 1712 | ; http://php.net/exif.decode-jis-intel 1713 | ;exif.decode_jis_intel = JIS 1714 | 1715 | [Tidy] 1716 | ; The path to a default tidy configuration file to use when using tidy 1717 | ; http://php.net/tidy.default-config 1718 | ;tidy.default_config = /usr/local/lib/php/default.tcfg 1719 | 1720 | ; Should tidy clean and repair output automatically? 1721 | ; WARNING: Do not use this option if you are generating non-html content 1722 | ; such as dynamic images 1723 | ; http://php.net/tidy.clean-output 1724 | tidy.clean_output = Off 1725 | 1726 | [soap] 1727 | ; Enables or disables WSDL caching feature. 1728 | ; http://php.net/soap.wsdl-cache-enabled 1729 | soap.wsdl_cache_enabled=1 1730 | 1731 | ; Sets the directory name where SOAP extension will put cache files. 1732 | ; http://php.net/soap.wsdl-cache-dir 1733 | soap.wsdl_cache_dir="/tmp" 1734 | 1735 | ; (time to live) Sets the number of second while cached file will be used 1736 | ; instead of original one. 1737 | ; http://php.net/soap.wsdl-cache-ttl 1738 | soap.wsdl_cache_ttl=86400 1739 | 1740 | ; Sets the size of the cache limit. (Max. number of WSDL files to cache) 1741 | soap.wsdl_cache_limit = 5 1742 | 1743 | [sysvshm] 1744 | ; A default size of the shared memory segment 1745 | ;sysvshm.init_mem = 10000 1746 | 1747 | [ldap] 1748 | ; Sets the maximum number of open links or -1 for unlimited. 1749 | ldap.max_links = -1 1750 | 1751 | [mcrypt] 1752 | ; For more information about mcrypt settings see http://php.net/mcrypt-module-open 1753 | 1754 | ; Directory where to load mcrypt algorithms 1755 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) 1756 | ;mcrypt.algorithms_dir= 1757 | 1758 | ; Directory where to load mcrypt modes 1759 | ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) 1760 | ;mcrypt.modes_dir= 1761 | 1762 | [dba] 1763 | ;dba.default_handler= 1764 | 1765 | [opcache] 1766 | ; Determines if Zend OPCache is enabled 1767 | ;opcache.enable=0 1768 | 1769 | ; Determines if Zend OPCache is enabled for the CLI version of PHP 1770 | ;opcache.enable_cli=0 1771 | 1772 | ; The OPcache shared memory storage size. 1773 | ;opcache.memory_consumption=64 1774 | 1775 | ; The amount of memory for interned strings in Mbytes. 1776 | ;opcache.interned_strings_buffer=4 1777 | 1778 | ; The maximum number of keys (scripts) in the OPcache hash table. 1779 | ; Only numbers between 200 and 100000 are allowed. 1780 | ;opcache.max_accelerated_files=2000 1781 | 1782 | ; The maximum percentage of "wasted" memory until a restart is scheduled. 1783 | ;opcache.max_wasted_percentage=5 1784 | 1785 | ; When this directive is enabled, the OPcache appends the current working 1786 | ; directory to the script key, thus eliminating possible collisions between 1787 | ; files with the same name (basename). Disabling the directive improves 1788 | ; performance, but may break existing applications. 1789 | ;opcache.use_cwd=1 1790 | 1791 | ; When disabled, you must reset the OPcache manually or restart the 1792 | ; webserver for changes to the filesystem to take effect. 1793 | ;opcache.validate_timestamps=1 1794 | 1795 | ; How often (in seconds) to check file timestamps for changes to the shared 1796 | ; memory storage allocation. ("1" means validate once per second, but only 1797 | ; once per request. "0" means always validate) 1798 | ;opcache.revalidate_freq=2 1799 | 1800 | ; Enables or disables file search in include_path optimization 1801 | ;opcache.revalidate_path=0 1802 | 1803 | ; If disabled, all PHPDoc comments are dropped from the code to reduce the 1804 | ; size of the optimized code. 1805 | ;opcache.save_comments=1 1806 | 1807 | ; If enabled, a fast shutdown sequence is used for the accelerated code 1808 | ;opcache.fast_shutdown=0 1809 | 1810 | ; Allow file existence override (file_exists, etc.) performance feature. 1811 | ;opcache.enable_file_override=0 1812 | 1813 | ; A bitmask, where each bit enables or disables the appropriate OPcache 1814 | ; passes 1815 | ;opcache.optimization_level=0xffffffff 1816 | 1817 | ;opcache.inherited_hack=1 1818 | ;opcache.dups_fix=0 1819 | 1820 | ; The location of the OPcache blacklist file (wildcards allowed). 1821 | ; Each OPcache blacklist file is a text file that holds the names of files 1822 | ; that should not be accelerated. The file format is to add each filename 1823 | ; to a new line. The filename may be a full path or just a file prefix 1824 | ; (i.e., /var/www/x blacklists all the files and directories in /var/www 1825 | ; that start with 'x'). Line starting with a ; are ignored (comments). 1826 | ;opcache.blacklist_filename= 1827 | 1828 | ; Allows exclusion of large files from being cached. By default all files 1829 | ; are cached. 1830 | ;opcache.max_file_size=0 1831 | 1832 | ; Check the cache checksum each N requests. 1833 | ; The default value of "0" means that the checks are disabled. 1834 | ;opcache.consistency_checks=0 1835 | 1836 | ; How long to wait (in seconds) for a scheduled restart to begin if the cache 1837 | ; is not being accessed. 1838 | ;opcache.force_restart_timeout=180 1839 | 1840 | ; OPcache error_log file name. Empty string assumes "stderr". 1841 | ;opcache.error_log= 1842 | 1843 | ; All OPcache errors go to the Web server log. 1844 | ; By default, only fatal errors (level 0) or errors (level 1) are logged. 1845 | ; You can also enable warnings (level 2), info messages (level 3) or 1846 | ; debug messages (level 4). 1847 | ;opcache.log_verbosity_level=1 1848 | 1849 | ; Preferred Shared Memory back-end. Leave empty and let the system decide. 1850 | ;opcache.preferred_memory_model= 1851 | 1852 | ; Protect the shared memory from unexpected writing during script execution. 1853 | ; Useful for internal debugging only. 1854 | ;opcache.protect_memory=0 1855 | 1856 | ; Allows calling OPcache API functions only from PHP scripts which path is 1857 | ; started from specified string. The default "" means no restriction 1858 | ;opcache.restrict_api= 1859 | 1860 | ; Mapping base of shared memory segments (for Windows only). All the PHP 1861 | ; processes have to map shared memory into the same address space. This 1862 | ; directive allows to manually fix the "Unable to reattach to base address" 1863 | ; errors. 1864 | ;opcache.mmap_base= 1865 | 1866 | ; Enables and sets the second level cache directory. 1867 | ; It should improve performance when SHM memory is full, at server restart or 1868 | ; SHM reset. The default "" disables file based caching. 1869 | ;opcache.file_cache= 1870 | 1871 | ; Enables or disables opcode caching in shared memory. 1872 | ;opcache.file_cache_only=0 1873 | 1874 | ; Enables or disables checksum validation when script loaded from file cache. 1875 | ;opcache.file_cache_consistency_checks=1 1876 | 1877 | ; Implies opcache.file_cache_only=1 for a certain process that failed to 1878 | ; reattach to the shared memory (for Windows only). Explicitly enabled file 1879 | ; cache is required. 1880 | ;opcache.file_cache_fallback=1 1881 | 1882 | ; Enables or disables copying of PHP code (text segment) into HUGE PAGES. 1883 | ; This should improve performance, but requires appropriate OS configuration. 1884 | ;opcache.huge_code_pages=1 1885 | 1886 | ; Validate cached file permissions. 1887 | ; opcache.validate_permission=0 1888 | 1889 | ; Prevent name collisions in chroot'ed environment. 1890 | ; opcache.validate_root=0 1891 | 1892 | [curl] 1893 | ; A default value for the CURLOPT_CAINFO option. This is required to be an 1894 | ; absolute path. 1895 | ;curl.cainfo = 1896 | 1897 | [openssl] 1898 | ; The location of a Certificate Authority (CA) file on the local filesystem 1899 | ; to use when verifying the identity of SSL/TLS peers. Most users should 1900 | ; not specify a value for this directive as PHP will attempt to use the 1901 | ; OS-managed cert stores in its absence. If specified, this value may still 1902 | ; be overridden on a per-stream basis via the "cafile" SSL stream context 1903 | ; option. 1904 | ;openssl.cafile= 1905 | 1906 | ; If openssl.cafile is not specified or if the CA file is not found, the 1907 | ; directory pointed to by openssl.capath is searched for a suitable 1908 | ; certificate. This value must be a correctly hashed certificate directory. 1909 | ; Most users should not specify a value for this directive as PHP will 1910 | ; attempt to use the OS-managed cert stores in its absence. If specified, 1911 | ; this value may still be overridden on a per-stream basis via the "capath" 1912 | ; SSL stream context option. 1913 | ;openssl.capath= 1914 | 1915 | ; Local Variables: 1916 | ; tab-width: 4 1917 | ; End: 1918 | -------------------------------------------------------------------------------- /reference.md: -------------------------------------------------------------------------------- 1 | Paragraph text requires no syntax. 2 | 3 | ``` 4 | Paragraph text requires no syntax. 5 | ``` 6 | 7 | *Italic* 8 | ``` 9 | *Italic* 10 | ``` 11 | 12 | **Bold** 13 | ``` 14 | **Bold** 15 | ``` 16 | 17 | [OU Libraries](http://libraries.ou.edu) 18 | ``` 19 | [OU Libraries](http://libraries.ou.edu) 20 | ``` 21 | 22 | ![This is the image caption.](https://libraries.ou.edu/sites/all/themes/oulib_bootstrap/img/ou_lib_logo.png) 23 | ``` 24 | ![Image](https://libraries.ou.edu/sites/all/themes/oulib_bootstrap/img/ou_lib_logo.png) 25 | ``` 26 | 27 | # Heading 1 28 | ## Heading 2 29 | ### Heading 3 30 | #### Heading 4 31 | ##### Heading 5 32 | ###### Heading 6 33 | 34 | ``` 35 | # Heading 1 36 | ## Heading 2 37 | ### Heading 3 38 | #### Heading 4 39 | ##### Heading 5 40 | ###### Heading 6 41 | ``` 42 | 43 | 1. Item one in an ordered list 44 | 2. Item two in an ordered list 45 | 3. Item three 46 | 47 | ``` 48 | 1. Item one in an ordered list 49 | 2. Item two in an ordered list 50 | 3. Item three 51 | ``` 52 | 53 | - First item in an unordered list 54 | - Second 55 | - Second and one-half 56 | - Second and three-quarters 57 | - Third 58 | 59 | ``` 60 | - First item in an unordered list 61 | - Second 62 | - Second and one-half 63 | - Second and three-quarters 64 | - Third 65 | ``` 66 | 67 | >Blockquote 68 | >>Nested blockquote 69 | 70 | ``` 71 | > Blockquote 72 | >> Nested Blockquote 73 | ``` 74 | 75 | --- 76 | 77 | ``` 78 | --- 79 | ``` 80 | 81 | `Inline code` with backticks 82 | 83 | ``` 84 | `Inline code` with backticks 85 | ``` 86 | 87 | 88 | // This is a codeblock 89 | print("3 backticks or"); 90 | print("indent 4 spaces"); 91 | 92 | 93 | // This is a codeblock 94 | print("3 backticks or"); 95 | print("indent 4 spaces"); 96 | -------------------------------------------------------------------------------- /scripts/cleanup.sh: -------------------------------------------------------------------------------- 1 | # removes all files and directories except uploads/ 2 | echo "moving into /var/www/html/ . . ." 3 | cd /var/www/html/ 4 | echo " " 5 | echo "before clean-up:" 6 | ls 7 | rm -rf assets preview stylesheets *.css *.html *.ini *.md *.php *.sh 8 | echo " " 9 | echo "after clean-up:" 10 | ls 11 | -------------------------------------------------------------------------------- /scripts/convert.sh: -------------------------------------------------------------------------------- 1 | # $1 = path to unique session directory 2 | # $2 = path to selected stylesheet 3 | # $3 = html extension, lowercase because that's what's typically used for extensions 4 | # $4 = pdf extension 5 | # $5 = epub3 extension 6 | # $6 = docx extension 7 | # $7 = stand-alone option 8 | 9 | # Move into unique directory created for a given session 10 | cd $1 11 | echo "PID: $$" > debug.txt 12 | echo $1 >> debug.txt 13 | echo $2 >> debug.txt 14 | echo $3 >> debug.txt 15 | echo $4 >> debug.txt 16 | echo $5 >> debug.txt 17 | echo $6 >> debug.txt 18 | echo $7 >> debug.txt 19 | 20 | # 21 | export PATH="$PATH:/opt/local/wkhtmltox/bin:/usr/local/bin:/usr/bin:/bin" 22 | 23 | # If a .zip file is present in unique directory, unzip it. Otherwise move on 24 | # to conversion. 25 | if [ -e *.zip ] 26 | then 27 | archive="$(ls *.zip)" 28 | unzip $archive 29 | dir="${archive%.zip}" 30 | echo "$(pwd)" >> debug.txt 31 | echo $archive >> debug.txt 32 | echo $dir >> debug.txt 33 | 34 | echo "__MACOSX ----" >> debug.txt 35 | echo "$(ls __MACOSX)" >> debug.txt 36 | rm -rf __MACOSX 37 | 38 | echo "dir/.* ----" >> debug.txt 39 | echo "$(ls $dir/.*)" >> debug.txt 40 | rm -rf $dir/.* 41 | 42 | echo "dir/* ----" >> debug.txt 43 | echo "$(ls $dir/*)" >> debug.txt 44 | mv $dir/* . 45 | 46 | echo "ls before----" >> debug.txt 47 | echo "$(ls)" >> debug.txt 48 | echo "----" >> debug.txt 49 | 50 | rm -rf $dir 51 | rm -rf $archive 52 | 53 | echo "ls after----" >> debug.txt 54 | echo "$(ls)" >> debug.txt 55 | echo "----" >> debug.txt 56 | fi 57 | 58 | 59 | # If an example stylesheet has been selected, remove all styleshees in favor of that which is selected. 60 | #echo $2 >> debug.txt 61 | #echo "'"$(ls *.css)"'" >> debug.txt 62 | if [ $2 == "custom" ] && [ "$(ls *.css)" == "" ]; 63 | then 64 | #echo "Not using example, no custom style provided" >> debug.txt # Working 65 | example="0" 66 | custom="0" 67 | stylesheet="" 68 | persistentStylesheet=$stylesheet 69 | fi 70 | if [ $2 == "custom" ] && [ "$(ls *.css)" != "" ]; 71 | then 72 | #echo "Not using example, custom style provided" >> debug.txt # Working 73 | example="0" 74 | custom="1" 75 | stylesheet=$(ls *.css | head -1) 76 | persistentStylesheet=$stylesheet 77 | fi 78 | if [ $2 != "custom" ] && [ "$(ls *.css)" != "" ]; 79 | then 80 | #echo "Using example, custom style provided" >> debug.txt # Working 81 | example="1" 82 | custom="1" 83 | rm *.css # Override provided stylesheet in favor of example stylesheet 84 | cp ../../$2 stylesheet.css 85 | stylesheet=$(ls *.css | head -1) 86 | persistentStylesheet=$stylesheet 87 | fi 88 | if [ $2 != "custom" ] && [ "$(ls *.css)" == "" ]; # If something other than default state is selected, do this . . . 89 | then 90 | #echo "Using Example, no custom style provided" >> debug.txt # Working 91 | example="1" 92 | custom="0" 93 | rm *.css # If an example stylesheet has been selected, remove all uploaded stylesheets 94 | cp ../../$2 stylesheet.css 95 | stylesheet=$(ls *.css | head -1) 96 | persistentStylesheet=$stylesheet 97 | fi 98 | 99 | # Repeat conversion for each of the selected output formats passed in on variables $3 - $5. 100 | for output in $3 $4 $5 $6 101 | do 102 | # Convert all .md files found in directory $1. 103 | # Apply only the first .css file returned by ls. Pandoc only allows 1 .css 104 | # file. Others will be ignored. 105 | # User should condense multiple stylesheets into one as a programatic approach 106 | # would willy nilly overwrite CSS attributes. 107 | for filename in *.md 108 | do 109 | filename=$(echo $filename | cut -f 1 -d '.') 110 | 111 | # HTML conversion # Working 1/8/17 1:30pm 112 | stylesheet=$persistentStylesheet 113 | if [ $output == "html" ]; 114 | then 115 | if [ $example == "0" ] && [ $custom == "0" ]; 116 | then 117 | #echo "HTML Not using example, no custom style provided" >> debug.txt # Working 118 | stylesheet="" # Working 119 | fi 120 | if [ $example == "0" ] && [ $custom == "1" ]; 121 | then 122 | #echo "HTML Not using example, custom style provided" >> debug.txt # Working 123 | stylesheet="-c $stylesheet" # Working 124 | fi 125 | if [ $example == "1" ] && [ $custom == "0" ]; 126 | then 127 | #echo "HTML Using Example, no custom style provided" >> debug.txt # Working 128 | stylesheet="-c $stylesheet" # Working 129 | fi 130 | if [ $example == "1" ] && [ $custom == "1" ]; 131 | then 132 | #echo "HTML Using example, custom style provided" >> debug.txt # Working 133 | stylesheet="-c $stylesheet" # Working 134 | fi 135 | echo "HTML Conversion ----------------------" >> debug.txt 136 | #echo $stylesheet >> debug.txt 137 | 138 | if [ $7 == "null" ]; 139 | then 140 | # if not creating stand-alone pages, go ahead and use custom stylesheet 141 | # if provided 142 | pandoc $filename.md -f markdown $stylesheet --mathjax -s -o $filename.html 2>>debug.txt 143 | else 144 | # if creating stand-alone pages, ignore all stylesheets. These should 145 | # be provided in the provided header 146 | pandoc $filename.md -f markdown -o $filename.html 2>>debug.txt 147 | fi 148 | fi 149 | # end HTML conversion --------------------- 150 | 151 | 152 | 153 | # PDF conversion # Working 1/8/17 10:27pm 154 | stylesheet=$persistentStylesheet 155 | if [ $output == "pdf" ]; 156 | then 157 | if [ $example == "0" ] && [ $custom == "0" ]; 158 | then 159 | #echo "PDF Not using example, no custom style provided" >> debug.txt # Working 160 | stylesheet="" # Working 161 | fi 162 | if [ $example == "0" ] && [ $custom == "1" ]; 163 | then 164 | #echo "PDF Not using example, custom style provided" >> debug.txt # Working 165 | stylesheet="-c $stylesheet" # Working, problem with font. Maybe font needs to be embedded? test condition: skeleton.css 166 | fi 167 | if [ $example == "1" ] && [ $custom == "0" ]; 168 | then 169 | #echo "PDF Using Example, no custom style provided" >> debug.txt # Working 170 | stylesheet="-c $stylesheet" # Working 171 | fi 172 | if [ $example == "1" ] && [ $custom == "1" ]; 173 | then 174 | #echo "PDF Using example, custom style provided" >> debug.txt # Working 175 | stylesheet="-c $stylesheet" # Working 176 | fi 177 | echo "temp HTML Conversion -----------------" >> debug.txt 178 | #echo $stylesheet >> debug.txt 179 | 180 | pandoc $filename.md -f markdown $stylesheet --mathjax -s -o temp.html 2>>debug.txt 181 | # --run-script removes letter-spacing from the most common text tags. 182 | # WKHTMLTOPDF has a known error that causes anything other than 183 | # letter-spacing of 0px to be extremely exaggerated. This script sets 184 | # letter-spacing to 0px for most common text tags. 185 | if [ $OSTYPE == "linux-gnu" ]; 186 | then 187 | echo "PDF Conversion -----------------------" >> debug.txt 188 | xvfb-run -a wkhtmltopdf --quiet --javascript-delay 1000 --user-style-sheet ../../print.css --run-script 'var elements = document.querySelectorAll("html,body,h1,h2,h3,h4,h5,h6,p,li,ol,pre,b,i,code,q,s"); for(var i = 0; i < elements.length; i++) { elements[i].style.letterSpacing = "0px"; }' temp.html $filename.pdf 2>>debug.txt 189 | else 190 | echo "PDF Conversion -----------------------" >> debug.txt 191 | wkhtmltopdf --quiet --javascript-delay 1000 --user-style-sheet ../../print.css --run-script 'var elements = document.querySelectorAll("html,body,h1,h2,h3,h4,h5,h6,p,li,ol,pre,b,i,code,q,s"); for(var i = 0; i < elements.length; i++) { elements[i].style.letterSpacing = "0px"; }' temp.html $filename.pdf 2>>debug.txt 192 | fi 193 | rm temp.html 194 | fi 195 | # end HTML conversion --------------------- 196 | 197 | # EPUB conversion # Working 1/8/17 11:25pm 198 | stylesheet=$persistentStylesheet 199 | if [ $output == "epub3" ]; 200 | then 201 | if [ $example == "0" ] && [ $custom == "0" ]; 202 | then 203 | #echo "EPUB Not using example, no custom style provided" >> debug.txt # Working 204 | stylesheet="" # Working 205 | fi 206 | if [ $example == "0" ] && [ $custom == "1" ]; 207 | then 208 | #echo "EPUB Not using example, custom style provided" >> debug.txt # Working 209 | stylesheet="--epub-stylesheet $stylesheet" # Working 210 | fi 211 | if [ $example == "1" ] && [ $custom == "0" ]; 212 | then 213 | #echo "EPUB Using Example, no custom style provided" >> debug.txt # Working 214 | stylesheet="--epub-stylesheet $stylesheet" # Working 215 | fi 216 | if [ $example == "1" ] && [ $custom == "1" ]; 217 | then 218 | #echo "EPUB Using example, custom style provided" >> debug.txt # Working 219 | stylesheet="--epub-stylesheet $stylesheet" # Working 220 | fi 221 | echo "EPUB Conversion ----------------------" >> debug.txt 222 | #echo $stylesheet >> debug.txt 223 | pandoc $filename.md -f markdown -t epub3 $stylesheet -o $filename.epub 2>>debug.txt 224 | fi 225 | # end EPUB conversion --------------------- 226 | 227 | # DOCX conversion # Working 1/8/17 11:38pm 228 | if [ $output == "docx" ]; 229 | then 230 | echo "DOCX Conversion ----------------------" >> debug.txt 231 | pandoc $filename.md -f markdown -o $filename.docx 2>>debug.txt # Working 232 | fi 233 | # end EPUB conversion --------------------- 234 | 235 | done 236 | done 237 | 238 | # stand-alone generation --------------------- 239 | if [ $7 == "stand-alone" ]; 240 | then 241 | echo "Stand-Alone Generation ----------------------" >> debug.txt 242 | 243 | if [ -a head.html ]; 244 | then 245 | echo "head.html found!" >> debug.txt 246 | else 247 | echo "head.html not found! If you'd like to indlude a header, add a file named tail.html containing the header's contents" >> debug.txt 248 | fi 249 | if [ -a tail.html ]; 250 | then 251 | echo "tail.html found!" >> debug.txt 252 | else 253 | echo "tail.html not found! If you'd like to indlude a footer, add a file named tail.html containing the footer's contents" >> debug.txt 254 | fi 255 | 256 | mkdir stand-alone/ 257 | 258 | for html_file in *.html 259 | do 260 | if [ $html_file == "head.html" ] || [ $html_file == "tail.html" ]; 261 | then 262 | : # do nothing 263 | else 264 | cat head.html $html_file tail.html > stand-alone/$html_file 265 | rm $html_file 266 | fi 267 | done 268 | fi 269 | # end stand-alone generation --------------------- 270 | 271 | # zip all files in working directory into an archive excluding any .zip files 272 | zip -r converted.zip * -x *.zip 273 | -------------------------------------------------------------------------------- /scripts/dependencies.sh: -------------------------------------------------------------------------------- 1 | # OS Assumptions 2 | # 3 | # Distributor ID: Ubuntu 4 | # Description: Ubuntu 16.04.1 LTS 5 | # Release: 16.04 6 | # Codename: xenial 7 | # 8 | # Returned by running $lsb_release -a 9 | 10 | # PHP 11 | # 12 | # In /etc/php/7.0/apache2/php.ini make the following changes 13 | # memory_limit = 128M 14 | # upload_max_filesize = 100M 15 | # post_max_size = 128M 16 | 17 | sudo usermod -aG sudo ubuntu 18 | 19 | # Update apt-get 20 | sudo apt-get update 21 | 22 | # Install Apache2 23 | sudo apt-get install apache2 24 | sudo apache2ctl configtest 25 | sudo systemctl restart apache2 26 | sudo ufw app list 27 | sudo ufw app info "Apache Full" 28 | sudo ufw allow in "Apache Full" 29 | 30 | # Install PHP 31 | sudo apt-get install php7.0 32 | sudo apt-get install libapache2-mod-php7.0 33 | 34 | # Install Pandoc 35 | sudo apt-get install pandoc 36 | 37 | # Install WKHTMLTOPDF 38 | sudo apt-get install wkhtmltopdf 39 | 40 | # Install Xvfb 41 | sudo apt-get install xvfb 42 | 43 | # Install zip 44 | sudo apt-get install zip 45 | 46 | # Restart Apache2 47 | sudo service apache2 restart 48 | -------------------------------------------------------------------------------- /scripts/setup.sh: -------------------------------------------------------------------------------- 1 | # when ran from inside Pandoc-Web-Interface/ will copy all necessary files to root of web directory 2 | echo "copying tool to /var/www/html/ . . ." 3 | cp -r * /var/www/html/ 4 | 5 | # copy PHP settings to correct path 6 | echo "copying php.ini to /etc/php/7.0/apache2/ . . ." 7 | sudo cp php.ini /etc/php/7.0/apache2/php.ini 8 | 9 | # Restart Apache2 10 | echo "restarting apache . . ." 11 | sudo service apache2 restart 12 | --------------------------------------------------------------------------------