Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch markdown-header-ids Excluding Merge-Ins
This is equivalent to a diff from b0188ce122 to a190fae4a2
|
2026-01-13
| ||
| 19:52 | Tag labels in Markdown with IDs that are compatible with GitHub. ... (check-in: f9ead7530c user: drh tags: trunk) | |
| 19:51 | Update the change log. ... (Closed-Leaf check-in: a190fae4a2 user: drh tags: markdown-header-ids) | |
| 19:50 | A more precise implementation of "slugify". ... (check-in: 8c9810e693 user: drh tags: markdown-header-ids) | |
|
2026-01-12
| ||
| 19:51 | Avoid unsigned integer overflow in the delta_apply() function when handed a maliciously malformed input. ... (check-in: e417a5070b user: drh tags: trunk) | |
| 18:55 | Attempt to add IDs to headers in markdown, the same way that GitHub does. Needs additional testing to confirm that unusual characters in headers are handled reasonably. ... (check-in: 21cbb8c467 user: drh tags: markdown-header-ids) | |
|
2026-01-11
| ||
| 17:04 | Modify the accordion panel style to hide only vertical overflow and keep the box shadows of selected and current timeline entries visible in the context section of /info pages. Set the CSS property to `clip' instead of `hidden' to disallow any vertical scrolling (for example, by tabbing through hyperlinks), although this is probably not relevant for accordion panels. ... (check-in: b0188ce122 user: florian tags: trunk) | |
|
2026-01-10
| ||
| 11:52 | Do not try to use "notepad" as a text editor on non-windows systems. ... (check-in: 9b263d87c1 user: drh tags: trunk) | |
Changes to src/markdown_html.c.
| ︙ | ︙ | |||
214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
static void html_header(
struct Blob *ob,
struct Blob *text,
int level,
void *opaque
){
struct Blob *title = ((MarkdownToHtml*)opaque)->output_title;
/* The first header at the beginning of a text is considered as
* a title and not output. */
if( blob_size(ob)<=PROLOG_SIZE && title!=0 && blob_size(title)==0 ){
blob_appendb(title, text);
return;
}
INTER_BLOCK(ob);
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > | 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 |
static void html_header(
struct Blob *ob,
struct Blob *text,
int level,
void *opaque
){
struct Blob *title = ((MarkdownToHtml*)opaque)->output_title;
char *z = 0;
int i,j;
/* The first header at the beginning of a text is considered as
* a title and not output. */
if( blob_size(ob)<=PROLOG_SIZE && title!=0 && blob_size(title)==0 ){
blob_appendb(title, text);
return;
}
INTER_BLOCK(ob);
z = fossil_strdup(blob_buffer(text));
if( z==0 ){
j = 0;
}else{
/*
** The GitHub "slugify" algorithm converts the text of a markdown header
** into a ID for that header. The algorithm is:
**
** 1. ASCII alphanumerics -> convert to lower case
** 2. Spaces, hyphens, underscores -> convert to '-'
** 3. Non-ASCII -> preserve as-is
** 4. Other punctuation -> remove
** 5. Multiple consecutive dashes -> collapse to one
** 6. Leading and trailing dashes -> remove
** 7. Markup <...> and &...; -> remove
**
** This implementation does the conversion in-place.
*/
for(i=j=0; z[i]; i++){
if( fossil_isalnum(z[i]) ){
z[j++] = fossil_tolower(z[i]);
}else if( fossil_isspace(z[i]) || z[i]=='-' || z[i]=='_' ){
if( j>0 && z[j-1]!='-' ) z[j++] = '-';
}else if( z[i]=='<' ){
do{ i++; }while( z[i]!=0 && z[i]!='>' );
}else if( z[i]=='&' ){
do{ i++; }while( z[i]!=0 && z[i]!=';' );
}else if( (z[i]&0x80)!=0 ){
z[j++] = z[i];
}
}
if( j>0 && z[j-1]=='-' ) j--;
z[j] = 0;
}
if( j>0 ){
blob_appendf(ob, "<h%d id=\"%s\">", level, z);
}else{
blob_appendf(ob, "<h%d>", level);
}
blob_appendb(ob, text);
blob_appendf(ob, "</h%d>", level);
fossil_free(z);
}
static void html_hrule(struct Blob *ob, void *opaque){
INTER_BLOCK(ob);
blob_append_literal(ob, "<hr>\n");
}
|
| ︙ | ︙ |
Changes to www/changes.wiki.
| ︙ | ︙ | |||
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
<li> New setting [/help/timeline-mark-leaves|timeline-mark-leaves] controls
whether or not leaf check-ins are marked in the timeline.
<li> "No-graph" timelines (using the "ng" query parameter) now show
branch colors and bare check-in circles on the left. The check-in
circles appear, but no lines connecting them.
([/timeline?ng|example]).
</ol>
<li> The [/help/timeline|timeline command] is enhanced with the new options
"<tt>-u|--for-user</tt>" to filter by user, and "<tt>-r</tt>" to display
entries in chronological order.
<li> The [/help/open|open command]'s new "<tt>--reopen REPOFILE</tt>" flag
can be used to fix a checkout after moving its repository file.
<li> Update internal Unicode character tables, used in regular expression
handling, from version 13 to 17.
| > > | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<li> New setting [/help/timeline-mark-leaves|timeline-mark-leaves] controls
whether or not leaf check-ins are marked in the timeline.
<li> "No-graph" timelines (using the "ng" query parameter) now show
branch colors and bare check-in circles on the left. The check-in
circles appear, but no lines connecting them.
([/timeline?ng|example]).
</ol>
<li> Labels in Markdown now have IDs generated using the GitHub "slugify"
algorithm.
<li> The [/help/timeline|timeline command] is enhanced with the new options
"<tt>-u|--for-user</tt>" to filter by user, and "<tt>-r</tt>" to display
entries in chronological order.
<li> The [/help/open|open command]'s new "<tt>--reopen REPOFILE</tt>" flag
can be used to fix a checkout after moving its repository file.
<li> Update internal Unicode character tables, used in regular expression
handling, from version 13 to 17.
|
| ︙ | ︙ |