Fossil SCM

Proposed new design for the forum. Individual posts are stored as ordinary artifacts and thus participate in sync just like any other artifact. There is a new artifact type used to describe forum posts. This check-in defines the format of the new artifact type. Follow-up check-ins on this thread will attempt to flesh-out the idea in code.

drh 2018-07-19 19:43 trunk
Commit 15fa605318fc0e4e8a6de1b58500770e32a4ee6f7c8972439c974ccf4fb390a8
1 file changed +119 -4
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -71,13 +71,14 @@
7171
<li> [#ctrl | Control Artifacts] </li>
7272
<li> [#wikichng | Wiki Pages] </li>
7373
<li> [#tktchng | Ticket Changes] </li>
7474
<li> [#attachment | Attachments] </li>
7575
<li> [#event | TechNotes] </li>
76
+<li> [#forum | Forum Posts] </li>
7677
</ul>
7778
78
-These seven structural artifact types are described in subsections below.
79
+These eight structural artifact types are described in subsections below.
7980
8081
Structural artifacts are ASCII text. The artifact may be PGP clearsigned.
8182
After removal of the PGP clearsign header and suffix (if any) a structural
8283
artifact consists of one or more "cards" separated by a single newline
8384
(ASCII: 0x0a) character. Each card begins with a single
@@ -525,10 +526,84 @@
525526
technote. The format of the W card is exactly the same as for a
526527
[#wikichng | wiki artifact].
527528
528529
The Z card is the required checksum over the rest of the artifact.
529530
531
+<a name="forum"></a>
532
+<h3>2.8 Forum Posts</h3>
533
+
534
+Forum posts are intended as a mechanism for users and developers to
535
+discuss a project. Forum mosts are like messages on a mailing list.
536
+
537
+The following cards are allowed on an forum post artifact:
538
+
539
+<blockquote>
540
+<b>D</b> <i>time-and-date-stamp</i><br />
541
+<b>G</b> <i>thread-root</i><br />
542
+<b>H</b> <i>thread-title</i><br />
543
+<b>I</b> <i>in-reply-to</i><br />
544
+<b>N</b> <i>mimetype</i><br />
545
+<b>P</b> <i>parent-artifact-id</i><br />
546
+<b>U</b> <i>user-name</i><br />
547
+<b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b><br />
548
+<b>Z</b> <i>checksum</i>
549
+</blockquote>
550
+
551
+Every forum post must have either one I card and one G card
552
+or one H card.
553
+Forum posts are organized into topic threads. The initial
554
+post for a thread (the root post) has an H card giving the title or
555
+subject for that thread. The argument to the H card is a string
556
+in the same format as a comment string in a C card.
557
+All follow-up posts have an I card that
558
+indicates which prior post in the same thread the current forum
559
+post is replying to, and a G card specifying the root post for
560
+the entire thread. The argument to G and I cards is the
561
+artifact hash for the prior forum post to which the card refers.
562
+
563
+In theory, it is sufficient for follow-up posts to have only an
564
+I card, since the G card value could be computed by following a
565
+chain of I cards. However, the G card is required in order to
566
+associate the artifact with a forum thread in the case where an
567
+intermediate artifact in the I card chain is shunned or otherwise
568
+becomes unreadable.
569
+
570
+A single D card is required to give the date and time when the
571
+forum post was created.
572
+
573
+The optional N card specifies the mimetype of the text of the technote
574
+that is contained in the W card. If the N card is omitted, then the
575
+W card text mimetype is assumed to be text/x-fossil, which is the
576
+Fossil wiki format.
577
+
578
+The optional P card specifies a prior forum post for which this
579
+forum post is an edit. For display purposes, only the child post
580
+is shown, thought the historical post is retained as a record.
581
+If P cards are used and there exist multiple versions of the same
582
+forum post, then I cards for other artifacts refer to whichever
583
+version of the post was current at the time the reply was made,
584
+but G cards refer to the initial, unedited root post for the thread.
585
+Thus, following the chain of I cards back to the root of the thread
586
+may land on a different post than the one given in the G card.
587
+However, following the chain of I cards back to the thread root,
588
+then following P cards back to the initial version of the thread
589
+root must give the same artifact as is provided by the G card,
590
+otherwise the artifact containing the G card is considered invalid
591
+and should be ignored.
592
+
593
+In general, P cards may contain multiple arguments, indicating a
594
+merge. But since forum posts cannot be merged, the
595
+P card of a forum post may only contain a single argument.
596
+
597
+The U card gives name of the user who entered the forum post.
598
+
599
+A single W card provides wiki text for the forum post.
600
+The format of the W card is exactly the same as for a
601
+[#wikichng | wiki artifact].
602
+
603
+The Z card is the required checksum over the rest of the artifact.
604
+
530605
531606
<a name="summary"></a>
532607
<h2>3.0 Card Summary</h2>
533608
534609
The following table summarizes the various kinds of cards that appear
@@ -539,20 +614,21 @@
539614
or more such cards are required.
540615
541616
<table border=1 width="100%">
542617
<tr>
543618
<th rowspan=2 valign=bottom>Card Format</th>
544
-<th colspan=7>Used By</th>
619
+<th colspan=8>Used By</th>
545620
</tr>
546621
<tr>
547622
<th>Manifest</th>
548623
<th>Cluster</th>
549624
<th>Control</th>
550625
<th>Wiki</th>
551626
<th>Ticket</th>
552627
<th>Attachment</th>
553628
<th>Technote</th>
629
+<th>Forum</th>
554630
</tr>
555631
<tr>
556632
<td><b>A</b> <i>filename</i> <i>target</i> ?<i>source</i>?</td>
557633
<td>&nbsp;</td>
558634
<td>&nbsp;</td>
@@ -559,36 +635,39 @@
559635
<td>&nbsp;</td>
560636
<td>&nbsp;</td>
561637
<td>&nbsp;</td>
562638
<td align=center><b>1</b></td>
563639
<td>&nbsp;</td>
640
+<td>&nbsp;</td>
564641
</tr>
565642
<tr>
566643
<td><b>B</b> <i>baseline</i></td>
567
-<td align=center><b>0-1*</b></td>
644
+<td align=center><b>0-1</b></td>
645
+<td>&nbsp;</td>
568646
<td>&nbsp;</td>
569647
<td>&nbsp;</td>
570648
<td>&nbsp;</td>
571649
<td>&nbsp;</td>
572650
<td>&nbsp;</td>
573651
<td>&nbsp;</td>
574652
</tr>
575
-<tr><td>&nbsp;</td><td colspan='7'>* = Required for delta manifests</td></tr>
576653
<tr>
577654
<td><b>C</b> <i>comment-text</i></td>
578655
<td align=center><b>1</b></td>
579656
<td>&nbsp;</td>
580657
<td>&nbsp;</td>
581658
<td>&nbsp;</td>
582659
<td>&nbsp;</td>
583660
<td align=center><b>0-1</b></td>
584661
<td align=center><b>0-1</b></td>
662
+<td>&nbsp;</td>
585663
</tr>
586664
<tr>
587665
<td><b>D</b> <i>date-time-stamp</i></td>
588666
<td align=center><b>1</b></td>
589667
<td>&nbsp;</td>
668
+<td align=center><b>1</b></td>
590669
<td align=center><b>1</b></td>
591670
<td align=center><b>1</b></td>
592671
<td align=center><b>1</b></td>
593672
<td align=center><b>1</b></td>
594673
<td align=center><b>1</b></td>
@@ -600,10 +679,11 @@
600679
<td>&nbsp;</td>
601680
<td>&nbsp;</td>
602681
<td>&nbsp;</td>
603682
<td>&nbsp;</td>
604683
<td align=center><b>1</b></td>
684
+<td>&nbsp;</td>
605685
</tr>
606686
<tr>
607687
<td><b>F</b> <i>filename</i> ?<i>uuid</i>? ?<i>permissions</i>? ?<i>oldname</i>?</td>
608688
<td align=center><b>0+</b></td>
609689
<td>&nbsp;</td>
@@ -610,18 +690,42 @@
610690
<td>&nbsp;</td>
611691
<td>&nbsp;</td>
612692
<td>&nbsp;</td>
613693
<td>&nbsp;</td>
614694
<td>&nbsp;</td>
695
+<td>&nbsp;</td>
696
+</tr>
697
+<tr>
698
+<td><b>H</b> <i>thread-title</i></td>
699
+<td>&nbsp;</td>
700
+<td>&nbsp;</td>
701
+<td>&nbsp;</td>
702
+<td>&nbsp;</td>
703
+<td>&nbsp;</td>
704
+<td>&nbsp;</td>
705
+<td>&nbsp;</td>
706
+<td align=center><b>0-1</b></td>
707
+</tr>
708
+<tr>
709
+<td><b>I</b> <i>in-reply-to</i></td>
710
+<td>&nbsp;</td>
711
+<td>&nbsp;</td>
712
+<td>&nbsp;</td>
713
+<td>&nbsp;</td>
714
+<td>&nbsp;</td>
715
+<td>&nbsp;</td>
716
+<td>&nbsp;</td>
717
+<td align=center><b>0-1</b></td>
615718
</tr>
616719
<tr>
617720
<td><b>J</b> <i>name</i> ?<i>value</i>?</td>
618721
<td>&nbsp;</td>
619722
<td>&nbsp;</td>
620723
<td>&nbsp;</td>
621724
<td>&nbsp;</td>
622725
<td align=center><b>1+</b></td>
726
+<td>&nbsp;</td>
623727
<td>&nbsp;</td>
624728
<td>&nbsp;</td>
625729
</tr>
626730
<tr>
627731
<td><b>K</b> <i>ticket-uuid</i></td>
@@ -630,10 +734,11 @@
630734
<td>&nbsp;</td>
631735
<td>&nbsp;</td>
632736
<td align=center><b>1</b></td>
633737
<td>&nbsp;</td>
634738
<td>&nbsp;</td>
739
+<td>&nbsp;</td>
635740
</tr>
636741
<tr>
637742
<td><b>L</b> <i>wiki-title</i></td>
638743
<td>&nbsp;</td>
639744
<td>&nbsp;</td>
@@ -640,15 +745,17 @@
640745
<td>&nbsp;</td>
641746
<td align=center><b>1</b></td>
642747
<td>&nbsp;</td>
643748
<td>&nbsp;</td>
644749
<td>&nbsp;</td>
750
+<td>&nbsp;</td>
645751
</tr>
646752
<tr>
647753
<td><b>M</b> <i>uuid</i></td>
648754
<td>&nbsp;</td>
649755
<td align=center><b>1+</b></td>
756
+<td>&nbsp;</td>
650757
<td>&nbsp;</td>
651758
<td>&nbsp;</td>
652759
<td>&nbsp;</td>
653760
<td>&nbsp;</td>
654761
<td>&nbsp;</td>
@@ -660,10 +767,11 @@
660767
<td>&nbsp;</td>
661768
<td align=center><b>0-1</b></td>
662769
<td>&nbsp;</td>
663770
<td align=center><b>0-1</b></td>
664771
<td align=center><b>0-1</b></td>
772
+<td align=center><b>0-1</b></td>
665773
</tr>
666774
<tr>
667775
<td><b>P</b> <i>uuid ...</i></td>
668776
<td align=center><b>0-1</b></td>
669777
<td>&nbsp;</td>
@@ -670,14 +778,16 @@
670778
<td>&nbsp;</td>
671779
<td align=center><b>0-1</b></td>
672780
<td>&nbsp;</td>
673781
<td>&nbsp;</td>
674782
<td align=center><b>0-1</b></td>
783
+<td align=center><b>0-1</b></td>
675784
</tr>
676785
<tr>
677786
<td><b>Q</b> (<b>+</b>|<b>-</b>)<i>uuid</i> ?<i>uuid</i>?</td>
678787
<td align=center><b>0+</b></td>
788
+<td>&nbsp;</td>
679789
<td>&nbsp;</td>
680790
<td>&nbsp;</td>
681791
<td>&nbsp;</td>
682792
<td>&nbsp;</td>
683793
<td>&nbsp;</td>
@@ -690,19 +800,21 @@
690800
<td>&nbsp;</td>
691801
<td>&nbsp;</td>
692802
<td>&nbsp;</td>
693803
<td>&nbsp;</td>
694804
<td>&nbsp;</td>
805
+<td>&nbsp;</td>
695806
<tr>
696807
<td><b>T</b> (<b>+</b>|<b>*</b>|<b>-</b>)<i>tagname</i> <i>uuid</i> ?<i>value</i>?</td>
697808
<td align=center><b>0+</b></td>
698809
<td>&nbsp;</td>
699810
<td align=center><b>1+</b></td>
700811
<td>&nbsp;</td>
701812
<td>&nbsp;</td>
702813
<td>&nbsp;</td>
703814
<td align=center><b>0+</b></td>
815
+<td>&nbsp;</td>
704816
</tr>
705817
<tr>
706818
<td><b>U</b> <i>username</i></td>
707819
<td align=center><b>1</b></td>
708820
<td>&nbsp;</td>
@@ -709,10 +821,11 @@
709821
<td align=center><b>1</b></td>
710822
<td align=center><b>1</b></td>
711823
<td align=center><b>1</b></td>
712824
<td align=center><b>0-1</b></td>
713825
<td align=center><b>0-1</b></td>
826
+<td align=center><b>1</b></td>
714827
</tr>
715828
<tr>
716829
<td><b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b></td>
717830
<td>&nbsp;</td>
718831
<td>&nbsp;</td>
@@ -719,13 +832,15 @@
719832
<td>&nbsp;</td>
720833
<td align=center><b>1</b></td>
721834
<td>&nbsp;</td>
722835
<td>&nbsp;</td>
723836
<td align=center><b>1</b></td>
837
+<td align=center><b>1</b></td>
724838
</tr>
725839
<tr>
726840
<td><b>Z</b> <i>md5sum</i></td>
841
+<td align=center><b>1</b></td>
727842
<td align=center><b>1</b></td>
728843
<td align=center><b>1</b></td>
729844
<td align=center><b>1</b></td>
730845
<td align=center><b>1</b></td>
731846
<td align=center><b>1</b></td>
732847
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -71,13 +71,14 @@
71 <li> [#ctrl | Control Artifacts] </li>
72 <li> [#wikichng | Wiki Pages] </li>
73 <li> [#tktchng | Ticket Changes] </li>
74 <li> [#attachment | Attachments] </li>
75 <li> [#event | TechNotes] </li>
 
76 </ul>
77
78 These seven structural artifact types are described in subsections below.
79
80 Structural artifacts are ASCII text. The artifact may be PGP clearsigned.
81 After removal of the PGP clearsign header and suffix (if any) a structural
82 artifact consists of one or more "cards" separated by a single newline
83 (ASCII: 0x0a) character. Each card begins with a single
@@ -525,10 +526,84 @@
525 technote. The format of the W card is exactly the same as for a
526 [#wikichng | wiki artifact].
527
528 The Z card is the required checksum over the rest of the artifact.
529
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
530
531 <a name="summary"></a>
532 <h2>3.0 Card Summary</h2>
533
534 The following table summarizes the various kinds of cards that appear
@@ -539,20 +614,21 @@
539 or more such cards are required.
540
541 <table border=1 width="100%">
542 <tr>
543 <th rowspan=2 valign=bottom>Card Format</th>
544 <th colspan=7>Used By</th>
545 </tr>
546 <tr>
547 <th>Manifest</th>
548 <th>Cluster</th>
549 <th>Control</th>
550 <th>Wiki</th>
551 <th>Ticket</th>
552 <th>Attachment</th>
553 <th>Technote</th>
 
554 </tr>
555 <tr>
556 <td><b>A</b> <i>filename</i> <i>target</i> ?<i>source</i>?</td>
557 <td>&nbsp;</td>
558 <td>&nbsp;</td>
@@ -559,36 +635,39 @@
559 <td>&nbsp;</td>
560 <td>&nbsp;</td>
561 <td>&nbsp;</td>
562 <td align=center><b>1</b></td>
563 <td>&nbsp;</td>
 
564 </tr>
565 <tr>
566 <td><b>B</b> <i>baseline</i></td>
567 <td align=center><b>0-1*</b></td>
 
568 <td>&nbsp;</td>
569 <td>&nbsp;</td>
570 <td>&nbsp;</td>
571 <td>&nbsp;</td>
572 <td>&nbsp;</td>
573 <td>&nbsp;</td>
574 </tr>
575 <tr><td>&nbsp;</td><td colspan='7'>* = Required for delta manifests</td></tr>
576 <tr>
577 <td><b>C</b> <i>comment-text</i></td>
578 <td align=center><b>1</b></td>
579 <td>&nbsp;</td>
580 <td>&nbsp;</td>
581 <td>&nbsp;</td>
582 <td>&nbsp;</td>
583 <td align=center><b>0-1</b></td>
584 <td align=center><b>0-1</b></td>
 
585 </tr>
586 <tr>
587 <td><b>D</b> <i>date-time-stamp</i></td>
588 <td align=center><b>1</b></td>
589 <td>&nbsp;</td>
 
590 <td align=center><b>1</b></td>
591 <td align=center><b>1</b></td>
592 <td align=center><b>1</b></td>
593 <td align=center><b>1</b></td>
594 <td align=center><b>1</b></td>
@@ -600,10 +679,11 @@
600 <td>&nbsp;</td>
601 <td>&nbsp;</td>
602 <td>&nbsp;</td>
603 <td>&nbsp;</td>
604 <td align=center><b>1</b></td>
 
605 </tr>
606 <tr>
607 <td><b>F</b> <i>filename</i> ?<i>uuid</i>? ?<i>permissions</i>? ?<i>oldname</i>?</td>
608 <td align=center><b>0+</b></td>
609 <td>&nbsp;</td>
@@ -610,18 +690,42 @@
610 <td>&nbsp;</td>
611 <td>&nbsp;</td>
612 <td>&nbsp;</td>
613 <td>&nbsp;</td>
614 <td>&nbsp;</td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615 </tr>
616 <tr>
617 <td><b>J</b> <i>name</i> ?<i>value</i>?</td>
618 <td>&nbsp;</td>
619 <td>&nbsp;</td>
620 <td>&nbsp;</td>
621 <td>&nbsp;</td>
622 <td align=center><b>1+</b></td>
 
623 <td>&nbsp;</td>
624 <td>&nbsp;</td>
625 </tr>
626 <tr>
627 <td><b>K</b> <i>ticket-uuid</i></td>
@@ -630,10 +734,11 @@
630 <td>&nbsp;</td>
631 <td>&nbsp;</td>
632 <td align=center><b>1</b></td>
633 <td>&nbsp;</td>
634 <td>&nbsp;</td>
 
635 </tr>
636 <tr>
637 <td><b>L</b> <i>wiki-title</i></td>
638 <td>&nbsp;</td>
639 <td>&nbsp;</td>
@@ -640,15 +745,17 @@
640 <td>&nbsp;</td>
641 <td align=center><b>1</b></td>
642 <td>&nbsp;</td>
643 <td>&nbsp;</td>
644 <td>&nbsp;</td>
 
645 </tr>
646 <tr>
647 <td><b>M</b> <i>uuid</i></td>
648 <td>&nbsp;</td>
649 <td align=center><b>1+</b></td>
 
650 <td>&nbsp;</td>
651 <td>&nbsp;</td>
652 <td>&nbsp;</td>
653 <td>&nbsp;</td>
654 <td>&nbsp;</td>
@@ -660,10 +767,11 @@
660 <td>&nbsp;</td>
661 <td align=center><b>0-1</b></td>
662 <td>&nbsp;</td>
663 <td align=center><b>0-1</b></td>
664 <td align=center><b>0-1</b></td>
 
665 </tr>
666 <tr>
667 <td><b>P</b> <i>uuid ...</i></td>
668 <td align=center><b>0-1</b></td>
669 <td>&nbsp;</td>
@@ -670,14 +778,16 @@
670 <td>&nbsp;</td>
671 <td align=center><b>0-1</b></td>
672 <td>&nbsp;</td>
673 <td>&nbsp;</td>
674 <td align=center><b>0-1</b></td>
 
675 </tr>
676 <tr>
677 <td><b>Q</b> (<b>+</b>|<b>-</b>)<i>uuid</i> ?<i>uuid</i>?</td>
678 <td align=center><b>0+</b></td>
 
679 <td>&nbsp;</td>
680 <td>&nbsp;</td>
681 <td>&nbsp;</td>
682 <td>&nbsp;</td>
683 <td>&nbsp;</td>
@@ -690,19 +800,21 @@
690 <td>&nbsp;</td>
691 <td>&nbsp;</td>
692 <td>&nbsp;</td>
693 <td>&nbsp;</td>
694 <td>&nbsp;</td>
 
695 <tr>
696 <td><b>T</b> (<b>+</b>|<b>*</b>|<b>-</b>)<i>tagname</i> <i>uuid</i> ?<i>value</i>?</td>
697 <td align=center><b>0+</b></td>
698 <td>&nbsp;</td>
699 <td align=center><b>1+</b></td>
700 <td>&nbsp;</td>
701 <td>&nbsp;</td>
702 <td>&nbsp;</td>
703 <td align=center><b>0+</b></td>
 
704 </tr>
705 <tr>
706 <td><b>U</b> <i>username</i></td>
707 <td align=center><b>1</b></td>
708 <td>&nbsp;</td>
@@ -709,10 +821,11 @@
709 <td align=center><b>1</b></td>
710 <td align=center><b>1</b></td>
711 <td align=center><b>1</b></td>
712 <td align=center><b>0-1</b></td>
713 <td align=center><b>0-1</b></td>
 
714 </tr>
715 <tr>
716 <td><b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b></td>
717 <td>&nbsp;</td>
718 <td>&nbsp;</td>
@@ -719,13 +832,15 @@
719 <td>&nbsp;</td>
720 <td align=center><b>1</b></td>
721 <td>&nbsp;</td>
722 <td>&nbsp;</td>
723 <td align=center><b>1</b></td>
 
724 </tr>
725 <tr>
726 <td><b>Z</b> <i>md5sum</i></td>
 
727 <td align=center><b>1</b></td>
728 <td align=center><b>1</b></td>
729 <td align=center><b>1</b></td>
730 <td align=center><b>1</b></td>
731 <td align=center><b>1</b></td>
732
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -71,13 +71,14 @@
71 <li> [#ctrl | Control Artifacts] </li>
72 <li> [#wikichng | Wiki Pages] </li>
73 <li> [#tktchng | Ticket Changes] </li>
74 <li> [#attachment | Attachments] </li>
75 <li> [#event | TechNotes] </li>
76 <li> [#forum | Forum Posts] </li>
77 </ul>
78
79 These eight structural artifact types are described in subsections below.
80
81 Structural artifacts are ASCII text. The artifact may be PGP clearsigned.
82 After removal of the PGP clearsign header and suffix (if any) a structural
83 artifact consists of one or more "cards" separated by a single newline
84 (ASCII: 0x0a) character. Each card begins with a single
@@ -525,10 +526,84 @@
526 technote. The format of the W card is exactly the same as for a
527 [#wikichng | wiki artifact].
528
529 The Z card is the required checksum over the rest of the artifact.
530
531 <a name="forum"></a>
532 <h3>2.8 Forum Posts</h3>
533
534 Forum posts are intended as a mechanism for users and developers to
535 discuss a project. Forum mosts are like messages on a mailing list.
536
537 The following cards are allowed on an forum post artifact:
538
539 <blockquote>
540 <b>D</b> <i>time-and-date-stamp</i><br />
541 <b>G</b> <i>thread-root</i><br />
542 <b>H</b> <i>thread-title</i><br />
543 <b>I</b> <i>in-reply-to</i><br />
544 <b>N</b> <i>mimetype</i><br />
545 <b>P</b> <i>parent-artifact-id</i><br />
546 <b>U</b> <i>user-name</i><br />
547 <b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b><br />
548 <b>Z</b> <i>checksum</i>
549 </blockquote>
550
551 Every forum post must have either one I card and one G card
552 or one H card.
553 Forum posts are organized into topic threads. The initial
554 post for a thread (the root post) has an H card giving the title or
555 subject for that thread. The argument to the H card is a string
556 in the same format as a comment string in a C card.
557 All follow-up posts have an I card that
558 indicates which prior post in the same thread the current forum
559 post is replying to, and a G card specifying the root post for
560 the entire thread. The argument to G and I cards is the
561 artifact hash for the prior forum post to which the card refers.
562
563 In theory, it is sufficient for follow-up posts to have only an
564 I card, since the G card value could be computed by following a
565 chain of I cards. However, the G card is required in order to
566 associate the artifact with a forum thread in the case where an
567 intermediate artifact in the I card chain is shunned or otherwise
568 becomes unreadable.
569
570 A single D card is required to give the date and time when the
571 forum post was created.
572
573 The optional N card specifies the mimetype of the text of the technote
574 that is contained in the W card. If the N card is omitted, then the
575 W card text mimetype is assumed to be text/x-fossil, which is the
576 Fossil wiki format.
577
578 The optional P card specifies a prior forum post for which this
579 forum post is an edit. For display purposes, only the child post
580 is shown, thought the historical post is retained as a record.
581 If P cards are used and there exist multiple versions of the same
582 forum post, then I cards for other artifacts refer to whichever
583 version of the post was current at the time the reply was made,
584 but G cards refer to the initial, unedited root post for the thread.
585 Thus, following the chain of I cards back to the root of the thread
586 may land on a different post than the one given in the G card.
587 However, following the chain of I cards back to the thread root,
588 then following P cards back to the initial version of the thread
589 root must give the same artifact as is provided by the G card,
590 otherwise the artifact containing the G card is considered invalid
591 and should be ignored.
592
593 In general, P cards may contain multiple arguments, indicating a
594 merge. But since forum posts cannot be merged, the
595 P card of a forum post may only contain a single argument.
596
597 The U card gives name of the user who entered the forum post.
598
599 A single W card provides wiki text for the forum post.
600 The format of the W card is exactly the same as for a
601 [#wikichng | wiki artifact].
602
603 The Z card is the required checksum over the rest of the artifact.
604
605
606 <a name="summary"></a>
607 <h2>3.0 Card Summary</h2>
608
609 The following table summarizes the various kinds of cards that appear
@@ -539,20 +614,21 @@
614 or more such cards are required.
615
616 <table border=1 width="100%">
617 <tr>
618 <th rowspan=2 valign=bottom>Card Format</th>
619 <th colspan=8>Used By</th>
620 </tr>
621 <tr>
622 <th>Manifest</th>
623 <th>Cluster</th>
624 <th>Control</th>
625 <th>Wiki</th>
626 <th>Ticket</th>
627 <th>Attachment</th>
628 <th>Technote</th>
629 <th>Forum</th>
630 </tr>
631 <tr>
632 <td><b>A</b> <i>filename</i> <i>target</i> ?<i>source</i>?</td>
633 <td>&nbsp;</td>
634 <td>&nbsp;</td>
@@ -559,36 +635,39 @@
635 <td>&nbsp;</td>
636 <td>&nbsp;</td>
637 <td>&nbsp;</td>
638 <td align=center><b>1</b></td>
639 <td>&nbsp;</td>
640 <td>&nbsp;</td>
641 </tr>
642 <tr>
643 <td><b>B</b> <i>baseline</i></td>
644 <td align=center><b>0-1</b></td>
645 <td>&nbsp;</td>
646 <td>&nbsp;</td>
647 <td>&nbsp;</td>
648 <td>&nbsp;</td>
649 <td>&nbsp;</td>
650 <td>&nbsp;</td>
651 <td>&nbsp;</td>
652 </tr>
 
653 <tr>
654 <td><b>C</b> <i>comment-text</i></td>
655 <td align=center><b>1</b></td>
656 <td>&nbsp;</td>
657 <td>&nbsp;</td>
658 <td>&nbsp;</td>
659 <td>&nbsp;</td>
660 <td align=center><b>0-1</b></td>
661 <td align=center><b>0-1</b></td>
662 <td>&nbsp;</td>
663 </tr>
664 <tr>
665 <td><b>D</b> <i>date-time-stamp</i></td>
666 <td align=center><b>1</b></td>
667 <td>&nbsp;</td>
668 <td align=center><b>1</b></td>
669 <td align=center><b>1</b></td>
670 <td align=center><b>1</b></td>
671 <td align=center><b>1</b></td>
672 <td align=center><b>1</b></td>
673 <td align=center><b>1</b></td>
@@ -600,10 +679,11 @@
679 <td>&nbsp;</td>
680 <td>&nbsp;</td>
681 <td>&nbsp;</td>
682 <td>&nbsp;</td>
683 <td align=center><b>1</b></td>
684 <td>&nbsp;</td>
685 </tr>
686 <tr>
687 <td><b>F</b> <i>filename</i> ?<i>uuid</i>? ?<i>permissions</i>? ?<i>oldname</i>?</td>
688 <td align=center><b>0+</b></td>
689 <td>&nbsp;</td>
@@ -610,18 +690,42 @@
690 <td>&nbsp;</td>
691 <td>&nbsp;</td>
692 <td>&nbsp;</td>
693 <td>&nbsp;</td>
694 <td>&nbsp;</td>
695 <td>&nbsp;</td>
696 </tr>
697 <tr>
698 <td><b>H</b> <i>thread-title</i></td>
699 <td>&nbsp;</td>
700 <td>&nbsp;</td>
701 <td>&nbsp;</td>
702 <td>&nbsp;</td>
703 <td>&nbsp;</td>
704 <td>&nbsp;</td>
705 <td>&nbsp;</td>
706 <td align=center><b>0-1</b></td>
707 </tr>
708 <tr>
709 <td><b>I</b> <i>in-reply-to</i></td>
710 <td>&nbsp;</td>
711 <td>&nbsp;</td>
712 <td>&nbsp;</td>
713 <td>&nbsp;</td>
714 <td>&nbsp;</td>
715 <td>&nbsp;</td>
716 <td>&nbsp;</td>
717 <td align=center><b>0-1</b></td>
718 </tr>
719 <tr>
720 <td><b>J</b> <i>name</i> ?<i>value</i>?</td>
721 <td>&nbsp;</td>
722 <td>&nbsp;</td>
723 <td>&nbsp;</td>
724 <td>&nbsp;</td>
725 <td align=center><b>1+</b></td>
726 <td>&nbsp;</td>
727 <td>&nbsp;</td>
728 <td>&nbsp;</td>
729 </tr>
730 <tr>
731 <td><b>K</b> <i>ticket-uuid</i></td>
@@ -630,10 +734,11 @@
734 <td>&nbsp;</td>
735 <td>&nbsp;</td>
736 <td align=center><b>1</b></td>
737 <td>&nbsp;</td>
738 <td>&nbsp;</td>
739 <td>&nbsp;</td>
740 </tr>
741 <tr>
742 <td><b>L</b> <i>wiki-title</i></td>
743 <td>&nbsp;</td>
744 <td>&nbsp;</td>
@@ -640,15 +745,17 @@
745 <td>&nbsp;</td>
746 <td align=center><b>1</b></td>
747 <td>&nbsp;</td>
748 <td>&nbsp;</td>
749 <td>&nbsp;</td>
750 <td>&nbsp;</td>
751 </tr>
752 <tr>
753 <td><b>M</b> <i>uuid</i></td>
754 <td>&nbsp;</td>
755 <td align=center><b>1+</b></td>
756 <td>&nbsp;</td>
757 <td>&nbsp;</td>
758 <td>&nbsp;</td>
759 <td>&nbsp;</td>
760 <td>&nbsp;</td>
761 <td>&nbsp;</td>
@@ -660,10 +767,11 @@
767 <td>&nbsp;</td>
768 <td align=center><b>0-1</b></td>
769 <td>&nbsp;</td>
770 <td align=center><b>0-1</b></td>
771 <td align=center><b>0-1</b></td>
772 <td align=center><b>0-1</b></td>
773 </tr>
774 <tr>
775 <td><b>P</b> <i>uuid ...</i></td>
776 <td align=center><b>0-1</b></td>
777 <td>&nbsp;</td>
@@ -670,14 +778,16 @@
778 <td>&nbsp;</td>
779 <td align=center><b>0-1</b></td>
780 <td>&nbsp;</td>
781 <td>&nbsp;</td>
782 <td align=center><b>0-1</b></td>
783 <td align=center><b>0-1</b></td>
784 </tr>
785 <tr>
786 <td><b>Q</b> (<b>+</b>|<b>-</b>)<i>uuid</i> ?<i>uuid</i>?</td>
787 <td align=center><b>0+</b></td>
788 <td>&nbsp;</td>
789 <td>&nbsp;</td>
790 <td>&nbsp;</td>
791 <td>&nbsp;</td>
792 <td>&nbsp;</td>
793 <td>&nbsp;</td>
@@ -690,19 +800,21 @@
800 <td>&nbsp;</td>
801 <td>&nbsp;</td>
802 <td>&nbsp;</td>
803 <td>&nbsp;</td>
804 <td>&nbsp;</td>
805 <td>&nbsp;</td>
806 <tr>
807 <td><b>T</b> (<b>+</b>|<b>*</b>|<b>-</b>)<i>tagname</i> <i>uuid</i> ?<i>value</i>?</td>
808 <td align=center><b>0+</b></td>
809 <td>&nbsp;</td>
810 <td align=center><b>1+</b></td>
811 <td>&nbsp;</td>
812 <td>&nbsp;</td>
813 <td>&nbsp;</td>
814 <td align=center><b>0+</b></td>
815 <td>&nbsp;</td>
816 </tr>
817 <tr>
818 <td><b>U</b> <i>username</i></td>
819 <td align=center><b>1</b></td>
820 <td>&nbsp;</td>
@@ -709,10 +821,11 @@
821 <td align=center><b>1</b></td>
822 <td align=center><b>1</b></td>
823 <td align=center><b>1</b></td>
824 <td align=center><b>0-1</b></td>
825 <td align=center><b>0-1</b></td>
826 <td align=center><b>1</b></td>
827 </tr>
828 <tr>
829 <td><b>W</b> <i>size</i> <b>\n</b> <i>text</i> <b>\n</b></td>
830 <td>&nbsp;</td>
831 <td>&nbsp;</td>
@@ -719,13 +832,15 @@
832 <td>&nbsp;</td>
833 <td align=center><b>1</b></td>
834 <td>&nbsp;</td>
835 <td>&nbsp;</td>
836 <td align=center><b>1</b></td>
837 <td align=center><b>1</b></td>
838 </tr>
839 <tr>
840 <td><b>Z</b> <i>md5sum</i></td>
841 <td align=center><b>1</b></td>
842 <td align=center><b>1</b></td>
843 <td align=center><b>1</b></td>
844 <td align=center><b>1</b></td>
845 <td align=center><b>1</b></td>
846 <td align=center><b>1</b></td>
847

Keyboard Shortcuts

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