Fossil SCM

Allow rendering of Pikchrs to SVG via /doc/…/foo.pikchr?popup URLs. This allows a file stored in the repo to be referenced as an SVG from other pages.

wyoung 2024-03-16 22:56 trunk
Commit 758170bc79fe365e580fd9825ebeb4cb817c2554c87712144643a60aa18225bd
2 files changed +2 -2 +8 -2
+2 -2
--- src/doc.c
+++ src/doc.c
@@ -830,13 +830,13 @@
830830
document_emit_js();
831831
style_finish_page();
832832
}
833833
}else if( fossil_strcmp(zMime, "text/x-pikchr")==0 ){
834834
style_adunit_config(ADUNIT_RIGHT_OK);
835
- style_header("%s", zDefaultTitle);
835
+ if( !isPopup ) style_header("%s", zDefaultTitle);
836836
wiki_render_by_mimetype(pBody, zMime);
837
- style_finish_page();
837
+ if( !isPopup ) style_finish_page();
838838
#ifdef FOSSIL_ENABLE_TH1_DOCS
839839
}else if( Th_AreDocsEnabled() &&
840840
fossil_strcmp(zMime, "application/x-th1")==0 ){
841841
int raw = P("raw")!=0;
842842
if( !raw ){
843843
--- src/doc.c
+++ src/doc.c
@@ -830,13 +830,13 @@
830 document_emit_js();
831 style_finish_page();
832 }
833 }else if( fossil_strcmp(zMime, "text/x-pikchr")==0 ){
834 style_adunit_config(ADUNIT_RIGHT_OK);
835 style_header("%s", zDefaultTitle);
836 wiki_render_by_mimetype(pBody, zMime);
837 style_finish_page();
838 #ifdef FOSSIL_ENABLE_TH1_DOCS
839 }else if( Th_AreDocsEnabled() &&
840 fossil_strcmp(zMime, "application/x-th1")==0 ){
841 int raw = P("raw")!=0;
842 if( !raw ){
843
--- src/doc.c
+++ src/doc.c
@@ -830,13 +830,13 @@
830 document_emit_js();
831 style_finish_page();
832 }
833 }else if( fossil_strcmp(zMime, "text/x-pikchr")==0 ){
834 style_adunit_config(ADUNIT_RIGHT_OK);
835 if( !isPopup ) style_header("%s", zDefaultTitle);
836 wiki_render_by_mimetype(pBody, zMime);
837 if( !isPopup ) style_finish_page();
838 #ifdef FOSSIL_ENABLE_TH1_DOCS
839 }else if( Th_AreDocsEnabled() &&
840 fossil_strcmp(zMime, "application/x-th1")==0 ){
841 int raw = P("raw")!=0;
842 if( !raw ){
843
+8 -2
--- src/wiki.c
+++ src/wiki.c
@@ -204,17 +204,23 @@
204204
markdown_to_html(pWiki, 0, &tail);
205205
safe_html(&tail);
206206
@ %s(blob_str(&tail))
207207
blob_reset(&tail);
208208
}else if( fossil_strcmp(zMimetype, "text/x-pikchr")==0 ){
209
+ int isPopup = P("popup")!=0;
209210
const char *zPikchr = blob_str(pWiki);
210211
int w, h;
211212
char *zOut = pikchr(zPikchr, "pikchr", 0, &w, &h);
212213
if( w>0 ){
213
- @ <div class="pikchr-svg" style="max-width:%d(w)px">
214
+ if( isPopup ) cgi_set_content_type("image/svg+xml");
215
+ else{
216
+ @ <div class="pikchr-svg" style="max-width:%d(w)px">
217
+ }
214218
@ %s(zOut)
215
- @ </div>
219
+ if( !isPopup){
220
+ @ </div>
221
+ }
216222
}else{
217223
@ <pre class='error'>
218224
@ %h(zOut)
219225
@ </pre>
220226
}
221227
--- src/wiki.c
+++ src/wiki.c
@@ -204,17 +204,23 @@
204 markdown_to_html(pWiki, 0, &tail);
205 safe_html(&tail);
206 @ %s(blob_str(&tail))
207 blob_reset(&tail);
208 }else if( fossil_strcmp(zMimetype, "text/x-pikchr")==0 ){
 
209 const char *zPikchr = blob_str(pWiki);
210 int w, h;
211 char *zOut = pikchr(zPikchr, "pikchr", 0, &w, &h);
212 if( w>0 ){
213 @ <div class="pikchr-svg" style="max-width:%d(w)px">
 
 
 
214 @ %s(zOut)
215 @ </div>
 
 
216 }else{
217 @ <pre class='error'>
218 @ %h(zOut)
219 @ </pre>
220 }
221
--- src/wiki.c
+++ src/wiki.c
@@ -204,17 +204,23 @@
204 markdown_to_html(pWiki, 0, &tail);
205 safe_html(&tail);
206 @ %s(blob_str(&tail))
207 blob_reset(&tail);
208 }else if( fossil_strcmp(zMimetype, "text/x-pikchr")==0 ){
209 int isPopup = P("popup")!=0;
210 const char *zPikchr = blob_str(pWiki);
211 int w, h;
212 char *zOut = pikchr(zPikchr, "pikchr", 0, &w, &h);
213 if( w>0 ){
214 if( isPopup ) cgi_set_content_type("image/svg+xml");
215 else{
216 @ <div class="pikchr-svg" style="max-width:%d(w)px">
217 }
218 @ %s(zOut)
219 if( !isPopup){
220 @ </div>
221 }
222 }else{
223 @ <pre class='error'>
224 @ %h(zOut)
225 @ </pre>
226 }
227

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button