Fossil SCM

Add markdown extra emphasis chars. See [forum:/forumpost/3618539728|forum thread 3618539728].

juef 2024-04-25 19:29 trunk
Commit bade58d57978d82e695f9612ac03c18fc7a612c4a1a2591e923be4b6ff970eeb
--- src/default.css
+++ src/default.css
@@ -1867,10 +1867,25 @@
18671867
}
18681868
div.markdown span.notescope:hover,
18691869
div.markdown span.notescope:target {
18701870
border-bottom: 2px solid gold;
18711871
}
1872
+
1873
+del {
1874
+ text-decoration: line-through;
1875
+ background-color: #fbb;
1876
+ color: #555;
1877
+}
1878
+
1879
+ins {
1880
+ text-decoration: none;
1881
+ background-color: #d4fcbc;
1882
+}
1883
+
1884
+mark {
1885
+ background-color: #f4fce3;
1886
+}
18721887
18731888
/* Objects in the "desktoponly" class are invisible on mobile */
18741889
@media screen and (max-width: 600px) {
18751890
.desktoponly {
18761891
display: none;
18771892
--- src/default.css
+++ src/default.css
@@ -1867,10 +1867,25 @@
1867 }
1868 div.markdown span.notescope:hover,
1869 div.markdown span.notescope:target {
1870 border-bottom: 2px solid gold;
1871 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1872
1873 /* Objects in the "desktoponly" class are invisible on mobile */
1874 @media screen and (max-width: 600px) {
1875 .desktoponly {
1876 display: none;
1877
--- src/default.css
+++ src/default.css
@@ -1867,10 +1867,25 @@
1867 }
1868 div.markdown span.notescope:hover,
1869 div.markdown span.notescope:target {
1870 border-bottom: 2px solid gold;
1871 }
1872
1873 del {
1874 text-decoration: line-through;
1875 background-color: #fbb;
1876 color: #555;
1877 }
1878
1879 ins {
1880 text-decoration: none;
1881 background-color: #d4fcbc;
1882 }
1883
1884 mark {
1885 background-color: #f4fce3;
1886 }
1887
1888 /* Objects in the "desktoponly" class are invisible on mobile */
1889 @media screen and (max-width: 600px) {
1890 .desktoponly {
1891 display: none;
1892
--- src/markdown.md
+++ src/markdown.md
@@ -58,12 +58,18 @@
5858
5959
## Text Style ##
6060
6161
> * _\*italic\*_
6262
> * *\_italic\_*
63
+> * subscript: \~text\~, e.g. H~2~O
64
+> * supscript: \^text\^, e.g. E=mc^2^
65
+> * ++\+\+inserted text\+\+++
66
+> * --\-\-deleted text\-\---
67
+> * ==\=\=mark\=\===
6368
> * __\*\*bold\*\*__
6469
> * **\_\_bold\_\_**
70
+> * ~~\~\~strikethrough\~\~~~
6571
> * ___\*\*\*italic+bold\*\*\*___
6672
> * ***\_\_\_italic+bold\_\_\_***
6773
> * \``code`\`
6874
6975
> The **\`code\`** construct disables HTML markup, so one can write, for
7076
--- src/markdown.md
+++ src/markdown.md
@@ -58,12 +58,18 @@
58
59 ## Text Style ##
60
61 > * _\*italic\*_
62 > * *\_italic\_*
 
 
 
 
 
63 > * __\*\*bold\*\*__
64 > * **\_\_bold\_\_**
 
65 > * ___\*\*\*italic+bold\*\*\*___
66 > * ***\_\_\_italic+bold\_\_\_***
67 > * \``code`\`
68
69 > The **\`code\`** construct disables HTML markup, so one can write, for
70
--- src/markdown.md
+++ src/markdown.md
@@ -58,12 +58,18 @@
58
59 ## Text Style ##
60
61 > * _\*italic\*_
62 > * *\_italic\_*
63 > * subscript: \~text\~, e.g. H~2~O
64 > * supscript: \^text\^, e.g. E=mc^2^
65 > * ++\+\+inserted text\+\+++
66 > * --\-\-deleted text\-\---
67 > * ==\=\=mark\=\===
68 > * __\*\*bold\*\*__
69 > * **\_\_bold\_\_**
70 > * ~~\~\~strikethrough\~\~~~
71 > * ___\*\*\*italic+bold\*\*\*___
72 > * ***\_\_\_italic+bold\_\_\_***
73 > * \``code`\`
74
75 > The **\`code\`** construct disables HTML markup, so one can write, for
76
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -750,32 +750,46 @@
750750
}
751751
}
752752
}
753753
return 1;
754754
}
755
+
756
+static void html_span(
757
+ struct Blob *ob,
758
+ struct Blob *text,
759
+ const char *tag
760
+){
761
+ blob_appendf(ob, "<%s>", tag);
762
+ blob_appendb(ob, text);
763
+ blob_appendf(ob, "</%s>", tag);
764
+}
755765
756766
static int html_double_emphasis(
757767
struct Blob *ob,
758768
struct Blob *text,
759769
char c,
760770
void *opaque
761771
){
762
- blob_append_literal(ob, "<strong>");
763
- blob_appendb(ob, text);
764
- blob_append_literal(ob, "</strong>");
772
+ if( c=='~' ) html_span(ob, text, "s");
773
+ else if( c=='-' ) html_span(ob, text, "del");
774
+ else if( c=='+' ) html_span(ob, text, "ins");
775
+ else if( c=='=' ) html_span(ob, text, "mark");
776
+ else if( c=='^' ) return 0;
777
+ else html_span(ob, text, "strong");
765778
return 1;
766779
}
767780
768781
static int html_emphasis(
769782
struct Blob *ob,
770783
struct Blob *text,
771784
char c,
772785
void *opaque
773786
){
774
- blob_append_literal(ob, "<em>");
775
- blob_appendb(ob, text);
776
- blob_append_literal(ob, "</em>");
787
+ if( c=='~' ) html_span(ob, text, "sub");
788
+ else if( c=='^' ) html_span(ob, text, "sup");
789
+ else if( c=='-' || c=='+' || c=='=' ) return 0;
790
+ else html_span(ob, text, "em");
777791
return 1;
778792
}
779793
780794
static int html_image(
781795
struct Blob *ob,
@@ -834,10 +848,11 @@
834848
struct Blob *ob,
835849
struct Blob *text,
836850
char c,
837851
void *opaque
838852
){
853
+ if( c!='*' && c!='_' ) return 0;
839854
blob_append_literal(ob, "<strong><em>");
840855
blob_appendb(ob, text);
841856
blob_append_literal(ob, "</em></strong>");
842857
return 1;
843858
}
@@ -893,11 +908,11 @@
893908
/* low level elements */
894909
0, /* entity */
895910
html_normal_text,
896911
897912
/* misc. parameters */
898
- "*_", /* emph_chars */
913
+ "*+-=^_~", /* emph_chars */
899914
0 /* opaque */
900915
};
901916
static int invocation = -1; /* no marker for the first document */
902917
static const char* zRU = 0; /* REQUEST_URI with escaped quotes */
903918
MarkdownToHtml context;
904919
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -750,32 +750,46 @@
750 }
751 }
752 }
753 return 1;
754 }
 
 
 
 
 
 
 
 
 
 
755
756 static int html_double_emphasis(
757 struct Blob *ob,
758 struct Blob *text,
759 char c,
760 void *opaque
761 ){
762 blob_append_literal(ob, "<strong>");
763 blob_appendb(ob, text);
764 blob_append_literal(ob, "</strong>");
 
 
 
765 return 1;
766 }
767
768 static int html_emphasis(
769 struct Blob *ob,
770 struct Blob *text,
771 char c,
772 void *opaque
773 ){
774 blob_append_literal(ob, "<em>");
775 blob_appendb(ob, text);
776 blob_append_literal(ob, "</em>");
 
777 return 1;
778 }
779
780 static int html_image(
781 struct Blob *ob,
@@ -834,10 +848,11 @@
834 struct Blob *ob,
835 struct Blob *text,
836 char c,
837 void *opaque
838 ){
 
839 blob_append_literal(ob, "<strong><em>");
840 blob_appendb(ob, text);
841 blob_append_literal(ob, "</em></strong>");
842 return 1;
843 }
@@ -893,11 +908,11 @@
893 /* low level elements */
894 0, /* entity */
895 html_normal_text,
896
897 /* misc. parameters */
898 "*_", /* emph_chars */
899 0 /* opaque */
900 };
901 static int invocation = -1; /* no marker for the first document */
902 static const char* zRU = 0; /* REQUEST_URI with escaped quotes */
903 MarkdownToHtml context;
904
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -750,32 +750,46 @@
750 }
751 }
752 }
753 return 1;
754 }
755
756 static void html_span(
757 struct Blob *ob,
758 struct Blob *text,
759 const char *tag
760 ){
761 blob_appendf(ob, "<%s>", tag);
762 blob_appendb(ob, text);
763 blob_appendf(ob, "</%s>", tag);
764 }
765
766 static int html_double_emphasis(
767 struct Blob *ob,
768 struct Blob *text,
769 char c,
770 void *opaque
771 ){
772 if( c=='~' ) html_span(ob, text, "s");
773 else if( c=='-' ) html_span(ob, text, "del");
774 else if( c=='+' ) html_span(ob, text, "ins");
775 else if( c=='=' ) html_span(ob, text, "mark");
776 else if( c=='^' ) return 0;
777 else html_span(ob, text, "strong");
778 return 1;
779 }
780
781 static int html_emphasis(
782 struct Blob *ob,
783 struct Blob *text,
784 char c,
785 void *opaque
786 ){
787 if( c=='~' ) html_span(ob, text, "sub");
788 else if( c=='^' ) html_span(ob, text, "sup");
789 else if( c=='-' || c=='+' || c=='=' ) return 0;
790 else html_span(ob, text, "em");
791 return 1;
792 }
793
794 static int html_image(
795 struct Blob *ob,
@@ -834,10 +848,11 @@
848 struct Blob *ob,
849 struct Blob *text,
850 char c,
851 void *opaque
852 ){
853 if( c!='*' && c!='_' ) return 0;
854 blob_append_literal(ob, "<strong><em>");
855 blob_appendb(ob, text);
856 blob_append_literal(ob, "</em></strong>");
857 return 1;
858 }
@@ -893,11 +908,11 @@
908 /* low level elements */
909 0, /* entity */
910 html_normal_text,
911
912 /* misc. parameters */
913 "*+-=^_~", /* emph_chars */
914 0 /* opaque */
915 };
916 static int invocation = -1; /* no marker for the first document */
917 static const char* zRU = 0; /* REQUEST_URI with escaped quotes */
918 MarkdownToHtml context;
919
+2 -2
--- src/wiki.wiki
+++ src/wiki.wiki
@@ -63,12 +63,12 @@
6363
&lt;del&gt; &lt;dfn&gt;
6464
&lt;div&gt; &lt;dl&gt; &lt;dt&gt; &lt;em&gt; &lt;font&gt; &lt;footer&gt;
6565
&lt;ins&gt;
6666
&lt;h1&gt; &lt;h2&gt; &lt;h3&gt; &lt;h4&gt; &lt;h5&gt; &lt;h6&gt;
6767
&lt;header&gt; &lt;hr&gt; &lt;i&gt; &lt;img&gt; &lt;kbd&gt; &lt;li&gt;
68
- &lt;nav&gt; &lt;nobr&gt; &lt;nowiki&gt; &lt;ol&gt; &lt;p&gt; &lt;pre&gt;
69
- &lt;s&gt; &lt;samp&gt; &lt;section&gt; &lt;small&gt; &lt;span&gt;
68
+ &lt;mark&gt; &lt;nav&gt; &lt;nobr&gt; &lt;nowiki&gt; &lt;ol&gt; &lt;p&gt;
69
+ &lt;pre&gt; &lt;s&gt; &lt;samp&gt; &lt;section&gt; &lt;small&gt; &lt;span&gt;
7070
&lt;strike&gt; &lt;strong&gt; &lt;sub&gt; &lt;sup&gt; &lt;table&gt;
7171
&lt;tbody&gt; &lt;td&gt; &lt;tfoot&gt; &lt;th&gt; &lt;thead&gt;
7272
&lt;title&gt; &lt;tr&gt; &lt;tt&gt; &lt;u&gt; &lt;ul&gt; &lt;var&gt;
7373
&lt;verbatim&gt;. There are two non-standard elements available:
7474
&lt;verbatim&gt; and &lt;nowiki&gt;. No other elements are allowed.
7575
--- src/wiki.wiki
+++ src/wiki.wiki
@@ -63,12 +63,12 @@
63 &lt;del&gt; &lt;dfn&gt;
64 &lt;div&gt; &lt;dl&gt; &lt;dt&gt; &lt;em&gt; &lt;font&gt; &lt;footer&gt;
65 &lt;ins&gt;
66 &lt;h1&gt; &lt;h2&gt; &lt;h3&gt; &lt;h4&gt; &lt;h5&gt; &lt;h6&gt;
67 &lt;header&gt; &lt;hr&gt; &lt;i&gt; &lt;img&gt; &lt;kbd&gt; &lt;li&gt;
68 &lt;nav&gt; &lt;nobr&gt; &lt;nowiki&gt; &lt;ol&gt; &lt;p&gt; &lt;pre&gt;
69 &lt;s&gt; &lt;samp&gt; &lt;section&gt; &lt;small&gt; &lt;span&gt;
70 &lt;strike&gt; &lt;strong&gt; &lt;sub&gt; &lt;sup&gt; &lt;table&gt;
71 &lt;tbody&gt; &lt;td&gt; &lt;tfoot&gt; &lt;th&gt; &lt;thead&gt;
72 &lt;title&gt; &lt;tr&gt; &lt;tt&gt; &lt;u&gt; &lt;ul&gt; &lt;var&gt;
73 &lt;verbatim&gt;. There are two non-standard elements available:
74 &lt;verbatim&gt; and &lt;nowiki&gt;. No other elements are allowed.
75
--- src/wiki.wiki
+++ src/wiki.wiki
@@ -63,12 +63,12 @@
63 &lt;del&gt; &lt;dfn&gt;
64 &lt;div&gt; &lt;dl&gt; &lt;dt&gt; &lt;em&gt; &lt;font&gt; &lt;footer&gt;
65 &lt;ins&gt;
66 &lt;h1&gt; &lt;h2&gt; &lt;h3&gt; &lt;h4&gt; &lt;h5&gt; &lt;h6&gt;
67 &lt;header&gt; &lt;hr&gt; &lt;i&gt; &lt;img&gt; &lt;kbd&gt; &lt;li&gt;
68 &lt;mark&gt; &lt;nav&gt; &lt;nobr&gt; &lt;nowiki&gt; &lt;ol&gt; &lt;p&gt;
69 &lt;pre&gt; &lt;s&gt; &lt;samp&gt; &lt;section&gt; &lt;small&gt; &lt;span&gt;
70 &lt;strike&gt; &lt;strong&gt; &lt;sub&gt; &lt;sup&gt; &lt;table&gt;
71 &lt;tbody&gt; &lt;td&gt; &lt;tfoot&gt; &lt;th&gt; &lt;thead&gt;
72 &lt;title&gt; &lt;tr&gt; &lt;tt&gt; &lt;u&gt; &lt;ul&gt; &lt;var&gt;
73 &lt;verbatim&gt;. There are two non-standard elements available:
74 &lt;verbatim&gt; and &lt;nowiki&gt;. No other elements are allowed.
75
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -216,10 +216,11 @@
216216
MARKUP_I,
217217
MARKUP_IMG,
218218
MARKUP_INS,
219219
MARKUP_KBD,
220220
MARKUP_LI,
221
+ MARKUP_MARK,
221222
MARKUP_HTML5_NAV,
222223
MARKUP_NOBR,
223224
MARKUP_NOWIKI,
224225
MARKUP_OL,
225226
MARKUP_P,
@@ -342,10 +343,11 @@
342343
AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE },
343344
{ "ins", MARKUP_INS, MUTYPE_FONT, AMSK_STYLE },
344345
{ "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE },
345346
{ "li", MARKUP_LI, MUTYPE_LI,
346347
AMSK_TYPE|AMSK_VALUE|AMSK_STYLE },
348
+ { "mark", MARKUP_MARK, MUTYPE_BLOCK, 0 },
347349
{ "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK,
348350
AMSK_ID|AMSK_CLASS|AMSK_STYLE },
349351
{ "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 },
350352
{ "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 },
351353
{ "ol", MARKUP_OL, MUTYPE_LIST,
352354
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -216,10 +216,11 @@
216 MARKUP_I,
217 MARKUP_IMG,
218 MARKUP_INS,
219 MARKUP_KBD,
220 MARKUP_LI,
 
221 MARKUP_HTML5_NAV,
222 MARKUP_NOBR,
223 MARKUP_NOWIKI,
224 MARKUP_OL,
225 MARKUP_P,
@@ -342,10 +343,11 @@
342 AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE },
343 { "ins", MARKUP_INS, MUTYPE_FONT, AMSK_STYLE },
344 { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE },
345 { "li", MARKUP_LI, MUTYPE_LI,
346 AMSK_TYPE|AMSK_VALUE|AMSK_STYLE },
 
347 { "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK,
348 AMSK_ID|AMSK_CLASS|AMSK_STYLE },
349 { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 },
350 { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 },
351 { "ol", MARKUP_OL, MUTYPE_LIST,
352
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -216,10 +216,11 @@
216 MARKUP_I,
217 MARKUP_IMG,
218 MARKUP_INS,
219 MARKUP_KBD,
220 MARKUP_LI,
221 MARKUP_MARK,
222 MARKUP_HTML5_NAV,
223 MARKUP_NOBR,
224 MARKUP_NOWIKI,
225 MARKUP_OL,
226 MARKUP_P,
@@ -342,10 +343,11 @@
343 AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE },
344 { "ins", MARKUP_INS, MUTYPE_FONT, AMSK_STYLE },
345 { "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE },
346 { "li", MARKUP_LI, MUTYPE_LI,
347 AMSK_TYPE|AMSK_VALUE|AMSK_STYLE },
348 { "mark", MARKUP_MARK, MUTYPE_BLOCK, 0 },
349 { "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK,
350 AMSK_ID|AMSK_CLASS|AMSK_STYLE },
351 { "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 },
352 { "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 },
353 { "ol", MARKUP_OL, MUTYPE_LIST,
354

Keyboard Shortcuts

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