Fossil SCM
An alternate impl for centering pikchrs which does not rely on margin:auto.
Commit
2963f440e8fb01e21af8c4a4d672dd54ddd7d6ee1aae042661d3a9683f64e7d1
Parent
052d37480927b60…
2 files changed
+13
-2
+6
-2
+13
-2
| --- src/default.css | ||
| +++ src/default.css | ||
| @@ -1386,9 +1386,20 @@ | ||
| 1386 | 1386 | noscript > .error { |
| 1387 | 1387 | /* Part of the style_emit_noscript_for_js_page() interface. */ |
| 1388 | 1388 | padding: 1em; |
| 1389 | 1389 | font-size: 150%; |
| 1390 | 1390 | } |
| 1391 | -.pikchr-src { /* source code view for a pikchr (see fossil.pikchr.js) */ | |
| 1392 | - box-sizing: border-box/*reduces UI shift*/; | |
| 1391 | +div.pikchr-wrapper {/*outer wrapper elem for a pikchr construct*/} | |
| 1392 | +div.pikchr {/*wrapper for SVG.pikchr element*/} | |
| 1393 | +svg.pikchr {/*pikchr SVG*/} | |
| 1394 | +pre.pikchr-src {/*source code view for a pikchr (see fossil.pikchr.js)*/ | |
| 1395 | + box-sizing: border-box; | |
| 1393 | 1396 | overflow: auto; |
| 1397 | + text-align: left; | |
| 1398 | +} | |
| 1399 | +div.pikchr-wrapper.center { | |
| 1400 | + text-align: center; | |
| 1401 | +} | |
| 1402 | +div.pikchr-wrapper.center > pre.pikchr-src, | |
| 1403 | +div.pikchr-wrapper.center > div.pikchr-svg{ | |
| 1404 | + display:inline-block; | |
| 1394 | 1405 | } |
| 1395 | 1406 |
| --- src/default.css | |
| +++ src/default.css | |
| @@ -1386,9 +1386,20 @@ | |
| 1386 | noscript > .error { |
| 1387 | /* Part of the style_emit_noscript_for_js_page() interface. */ |
| 1388 | padding: 1em; |
| 1389 | font-size: 150%; |
| 1390 | } |
| 1391 | .pikchr-src { /* source code view for a pikchr (see fossil.pikchr.js) */ |
| 1392 | box-sizing: border-box/*reduces UI shift*/; |
| 1393 | overflow: auto; |
| 1394 | } |
| 1395 |
| --- src/default.css | |
| +++ src/default.css | |
| @@ -1386,9 +1386,20 @@ | |
| 1386 | noscript > .error { |
| 1387 | /* Part of the style_emit_noscript_for_js_page() interface. */ |
| 1388 | padding: 1em; |
| 1389 | font-size: 150%; |
| 1390 | } |
| 1391 | div.pikchr-wrapper {/*outer wrapper elem for a pikchr construct*/} |
| 1392 | div.pikchr {/*wrapper for SVG.pikchr element*/} |
| 1393 | svg.pikchr {/*pikchr SVG*/} |
| 1394 | pre.pikchr-src {/*source code view for a pikchr (see fossil.pikchr.js)*/ |
| 1395 | box-sizing: border-box; |
| 1396 | overflow: auto; |
| 1397 | text-align: left; |
| 1398 | } |
| 1399 | div.pikchr-wrapper.center { |
| 1400 | text-align: center; |
| 1401 | } |
| 1402 | div.pikchr-wrapper.center > pre.pikchr-src, |
| 1403 | div.pikchr-wrapper.center > div.pikchr-svg{ |
| 1404 | display:inline-block; |
| 1405 | } |
| 1406 |
+6
-2
| --- src/pikchrshow.c | ||
| +++ src/pikchrshow.c | ||
| @@ -155,20 +155,22 @@ | ||
| 155 | 155 | |
| 156 | 156 | zOut = pikchr(zContent, "pikchr", 0, &w, &h); |
| 157 | 157 | if( w>0 && h>0 ){ |
| 158 | 158 | const char * zClassToggle = ""; |
| 159 | 159 | const char * zClassSource = ""; |
| 160 | + const char * zWrapperClass = ""; | |
| 160 | 161 | const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags) |
| 161 | 162 | ? safe_html_nonce(1) : 0; |
| 162 | 163 | if(zNonce){ |
| 163 | 164 | blob_appendf(pOut, "%s\n", zNonce); |
| 164 | 165 | } |
| 165 | 166 | if(PIKCHR_PROCESS_DIV & pikFlags){ |
| 166 | 167 | Blob css = empty_blob; |
| 167 | 168 | blob_appendf(&css, "max-width:%dpx;", w); |
| 168 | 169 | if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){ |
| 169 | - blob_append(&css, "display:block;margin-auto;", -1); | |
| 170 | + /*blob_append(&css, "display:block;margin:auto;", -1);*/ | |
| 171 | + zWrapperClass = " center"; | |
| 170 | 172 | }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){ |
| 171 | 173 | blob_append(&css, "margin-left:4em", -1); |
| 172 | 174 | }else if(PIKCHR_PROCESS_DIV_FLOAT_LEFT & pikFlags){ |
| 173 | 175 | blob_append(&css, "float:left;padding=4em;", -1); |
| 174 | 176 | }else if(PIKCHR_PROCESS_DIV_FLOAT_RIGHT & pikFlags){ |
| @@ -178,12 +180,14 @@ | ||
| 178 | 180 | zClassToggle = " toggle"; |
| 179 | 181 | } |
| 180 | 182 | if(PIKCHR_PROCESS_DIV_SOURCE & pikFlags){ |
| 181 | 183 | zClassSource = " source"; |
| 182 | 184 | } |
| 183 | - blob_appendf(pOut,"<div><div class=\"pikchr-svg%s%s\" " | |
| 185 | + blob_appendf(pOut,"<div class='pikchr-wrapper%s'>" | |
| 186 | + "<div class=\"pikchr-svg%s%s\" " | |
| 184 | 187 | "style=\"%b\">\n", |
| 188 | + zWrapperClass/*safe-for-%s*/, | |
| 185 | 189 | zClassToggle/*safe-for-%s*/, |
| 186 | 190 | zClassSource/*safe-for-%s*/, &css); |
| 187 | 191 | blob_reset(&css); |
| 188 | 192 | } |
| 189 | 193 | blob_append(pOut, zOut, -1); |
| 190 | 194 |
| --- src/pikchrshow.c | |
| +++ src/pikchrshow.c | |
| @@ -155,20 +155,22 @@ | |
| 155 | |
| 156 | zOut = pikchr(zContent, "pikchr", 0, &w, &h); |
| 157 | if( w>0 && h>0 ){ |
| 158 | const char * zClassToggle = ""; |
| 159 | const char * zClassSource = ""; |
| 160 | const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags) |
| 161 | ? safe_html_nonce(1) : 0; |
| 162 | if(zNonce){ |
| 163 | blob_appendf(pOut, "%s\n", zNonce); |
| 164 | } |
| 165 | if(PIKCHR_PROCESS_DIV & pikFlags){ |
| 166 | Blob css = empty_blob; |
| 167 | blob_appendf(&css, "max-width:%dpx;", w); |
| 168 | if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){ |
| 169 | blob_append(&css, "display:block;margin-auto;", -1); |
| 170 | }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){ |
| 171 | blob_append(&css, "margin-left:4em", -1); |
| 172 | }else if(PIKCHR_PROCESS_DIV_FLOAT_LEFT & pikFlags){ |
| 173 | blob_append(&css, "float:left;padding=4em;", -1); |
| 174 | }else if(PIKCHR_PROCESS_DIV_FLOAT_RIGHT & pikFlags){ |
| @@ -178,12 +180,14 @@ | |
| 178 | zClassToggle = " toggle"; |
| 179 | } |
| 180 | if(PIKCHR_PROCESS_DIV_SOURCE & pikFlags){ |
| 181 | zClassSource = " source"; |
| 182 | } |
| 183 | blob_appendf(pOut,"<div><div class=\"pikchr-svg%s%s\" " |
| 184 | "style=\"%b\">\n", |
| 185 | zClassToggle/*safe-for-%s*/, |
| 186 | zClassSource/*safe-for-%s*/, &css); |
| 187 | blob_reset(&css); |
| 188 | } |
| 189 | blob_append(pOut, zOut, -1); |
| 190 |
| --- src/pikchrshow.c | |
| +++ src/pikchrshow.c | |
| @@ -155,20 +155,22 @@ | |
| 155 | |
| 156 | zOut = pikchr(zContent, "pikchr", 0, &w, &h); |
| 157 | if( w>0 && h>0 ){ |
| 158 | const char * zClassToggle = ""; |
| 159 | const char * zClassSource = ""; |
| 160 | const char * zWrapperClass = ""; |
| 161 | const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags) |
| 162 | ? safe_html_nonce(1) : 0; |
| 163 | if(zNonce){ |
| 164 | blob_appendf(pOut, "%s\n", zNonce); |
| 165 | } |
| 166 | if(PIKCHR_PROCESS_DIV & pikFlags){ |
| 167 | Blob css = empty_blob; |
| 168 | blob_appendf(&css, "max-width:%dpx;", w); |
| 169 | if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){ |
| 170 | /*blob_append(&css, "display:block;margin:auto;", -1);*/ |
| 171 | zWrapperClass = " center"; |
| 172 | }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){ |
| 173 | blob_append(&css, "margin-left:4em", -1); |
| 174 | }else if(PIKCHR_PROCESS_DIV_FLOAT_LEFT & pikFlags){ |
| 175 | blob_append(&css, "float:left;padding=4em;", -1); |
| 176 | }else if(PIKCHR_PROCESS_DIV_FLOAT_RIGHT & pikFlags){ |
| @@ -178,12 +180,14 @@ | |
| 180 | zClassToggle = " toggle"; |
| 181 | } |
| 182 | if(PIKCHR_PROCESS_DIV_SOURCE & pikFlags){ |
| 183 | zClassSource = " source"; |
| 184 | } |
| 185 | blob_appendf(pOut,"<div class='pikchr-wrapper%s'>" |
| 186 | "<div class=\"pikchr-svg%s%s\" " |
| 187 | "style=\"%b\">\n", |
| 188 | zWrapperClass/*safe-for-%s*/, |
| 189 | zClassToggle/*safe-for-%s*/, |
| 190 | zClassSource/*safe-for-%s*/, &css); |
| 191 | blob_reset(&css); |
| 192 | } |
| 193 | blob_append(pOut, zOut, -1); |
| 194 |