Documentation Source Text

Check-in [22726478ad]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Provide for alternative document titles using <alt-title>...</alt-title>. Have the document page come up with the first sublist (containing lists of other documents) open automatically.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 22726478ade668aedf9fbc4e6690d9142726131e
User & Date: drh 2016-09-22 18:03:29
Context
2016-09-23
11:32
Fix a LHS/RHS mixup in the rowvalue documentation. check-in: db4e5cec36 user: drh tags: trunk
2016-09-22
18:03
Provide for alternative document titles using <alt-title>...</alt-title>. Have the document page come up with the first sublist (containing lists of other documents) open automatically. check-in: 22726478ad user: drh tags: trunk
17:19
Fix typos in the opcode.html page. check-in: bfe3dc203f user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Show Whitespace Changes Patch

Changes to pages/capi3ref.in.

1

2
3
4
5
6
7
8
<title>C/C++ Interface For SQLite Version 3</title>

<tcl>
set in [open sqlite3.h] 
set title {}       ;# title of a section of interface definition
set type {}        ;# one of: constant datatype function
set body {}        ;# human-readable description
set code {}        ;# C code of the definition
set phase 0        ;# Phase used by the parser 

>







1
2
3
4
5
6
7
8
9
<title>C/C++ Interface For SQLite Version 3</title>
<alt-title>C/C++ API Reference</alt-title>
<tcl>
set in [open sqlite3.h] 
set title {}       ;# title of a section of interface definition
set type {}        ;# one of: constant datatype function
set body {}        ;# human-readable description
set code {}        ;# C code of the definition
set phase 0        ;# Phase used by the parser 

Changes to pages/compile.in.

1
2
3
4
5
6
7
8
<title>Compilation Options For SQLite</title>
<tcl>hd_keywords {compile-time options}</tcl>

<table_of_contents>

<h1>Overview</h1>

<p>
|







1
2
3
4
5
6
7
8
<title>Compile-time Options</title>
<tcl>hd_keywords {compile-time options}</tcl>

<table_of_contents>

<h1>Overview</h1>

<p>

Changes to pages/docs.in.

64
65
66
67
68
69
70




71
72

73
74

75
76

77
78
79
80
81
82
83
}
proc end_heading {} {
  global lDoc cnt prevHead
  if {$prevHead==""} return
  incr cnt
  hd_puts "<li><a onclick='showhide($cnt)'>"
  hd_puts "<span class='sh_mark' id='sh_mark_$cnt'>"




  hd_puts "&#x25ba;</span> $prevHead</a>\n"
  hd_putsnl "<ul id='sh_sub_$cnt'>"

  foreach {name url desc} $lDoc {
    hd_putsnl "<li><a class='sh_link' href='$url'>$name</a>"

    hd_putsnl "<span class='desktoponly'>&rarr; $desc</span>"
  }

  hd_putsnl </ul>
  set lDoc {}
}
source [file join $::DOC pages docsdata.tcl]
end_heading
</tcl>
</ul>







>
>
>
>
|
|
>


>
|
|
>







64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
}
proc end_heading {} {
  global lDoc cnt prevHead
  if {$prevHead==""} return
  incr cnt
  hd_puts "<li><a onclick='showhide($cnt)'>"
  hd_puts "<span class='sh_mark' id='sh_mark_$cnt'>"
  if {$cnt==1} {
    hd_puts "&#x25bc;</span> $prevHead</a>\n"
    hd_putsnl "<ul id='sh_sub_$cnt' style='display:block;'>"
  } else {
    hd_puts "&#x25ba;</span> $prevHead</a>\n"
    hd_putsnl "<ul id='sh_sub_$cnt'>"
  }
  foreach {name url desc} $lDoc {
    hd_putsnl "<li><a class='sh_link' href='$url'>$name</a>"
    if {$desc!=""} {
      hd_putsnl "<span class='desktoponly'>&rarr; $desc</span>"
    }
  }
  hd_putsnl </ul>
  set lDoc {}
}
source [file join $::DOC pages docsdata.tcl]
end_heading
</tcl>
</ul>

Changes to pages/docsdata.tcl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
heading {Document Lists And Indexes} lists

doc {Alphabetical Listing Of Documents} {doclist.html} {
  A list of all titled pages on this website, sorted by title.
}
doc {Website Keyword Index} {keyword_index.html} {
  A cross-reference from keywords to various pages within this website.
}
doc {Permuted Title Index} {sitemap.html#pindex} {
  Also known as a "keyword in context" or "KWIC" index or as a concordance,
  this document is a listing of all other documents sorted by keyword.
}

###############################################################################
heading {Overview Documents} overview

doc {About SQLite} {about.html} {
  A high-level overview of what SQLite is and why you might be
  interested in using it.


|
<
<
|
<
<
|
<
<
<







1
2
3


4


5



6
7
8
9
10
11
12
heading {Document Lists And Indexes} lists

doc {Alphabetical Listing Of All Documents} {doclist.html} {}


doc {Website Keyword Index} {keyword_index.html} {}


doc {Permuted Title Index} {sitemap.html#pindex} {}




###############################################################################
heading {Overview Documents} overview

doc {About SQLite} {about.html} {
  A high-level overview of what SQLite is and why you might be
  interested in using it.

Changes to pages/sitemap.in.

18
19
20
21
22
23
24



25
26
27
28
29
30
31
<tcl>
db eval {
  DROP TABLE IF EXISTS px;
  CREATE TEMP TABLE px(title COLLATE nocase,link);
}
db eval {
  SELECT pagetitle, filename FROM page WHERE pagetitle!='No Title'



  UNION ALL
  SELECT pagetitle, url FROM expage
} {
  set nword [llength $pagetitle]
  db eval {INSERT INTO px VALUES($pagetitle, $filename)}
  for {set i 1} {$i<$nword} {incr i} {
    set firstpart [lrange $pagetitle 0 [expr {$i-1}]]







>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<tcl>
db eval {
  DROP TABLE IF EXISTS px;
  CREATE TEMP TABLE px(title COLLATE nocase,link);
}
db eval {
  SELECT pagetitle, filename FROM page WHERE pagetitle!='No Title'
  UNION ALL
  SELECT alttitle, filename FROM alttitle, page
   WHERE alttitle.pageid=page.pageid
  UNION ALL
  SELECT pagetitle, url FROM expage
} {
  set nword [llength $pagetitle]
  db eval {INSERT INTO px VALUES($pagetitle, $filename)}
  for {set i 1} {$i<$nword} {incr i} {
    set firstpart [lrange $pagetitle 0 [expr {$i-1}]]

Changes to pages/versionnumbers.in.

1
2


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
..
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
..
77
78
79
80
81
82
83







<tcl>hd_keywords {version numbering conventions}</tcl>
<title>Version Numbers in SQLite</title>



<h1>SQLite Version Numbers</h1>

<p>
Beginning with [version 3.9.0] SQLite uses 
[http://semver.org|semantic versioning].
Prior to that time, SQLite employed a version identifier that
contained between two and four numbers.

<h2>The New Version Numbering System (After 2015-10-01)</h2>

<p>
All SQLite releases starting with 3.9.0 use a three-number
"[http://semver.org|semantic version]" of the form X.Y.Z.
The first number X is only increased when there is a change that
breaks backward compatibility.  The
current value for X is 3, and the SQLite developers plan to support
................................................................................
numbering format used by for [SQLITE_VERSION_NUMBER] and
[sqlite3_libversion_number()] allows versions up to 3.999.999, which is
more than enough for the planned end-of-support date for SQLite
in 2050.  However, the current tarball naming conventions only
reserve two digits for the Y and so the naming format for downloads
will need to be revised in about 2030.

<h2>The Historical Numbering System (Before 2015-10-01)</h2>

<p>This historical version numbering system used a two-, three-,
or four-number version:  W.X, W.X.Y, or W.X.Y.Z.
W was the file format: 1 or 2 or 3.
X was the major version.
Y was the minor version.
Z was used only for patch releases to fix bugs.
................................................................................
[partial indexes], and [indexes on expressions] are all examples of
"minor" changes.  Again, the distinction between "major" and "minor"
is subjective.

<p>
The patch level Z was historically only used for bug-fix releases
that changed only a small number of code lines.









>
>




|




|







 







|







 







>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
..
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<tcl>hd_keywords {version numbering conventions}</tcl>
<title>Version Numbers in SQLite</title>

<fancy_format>

<h1>SQLite Version Numbers</h1>

<p>
Beginning with [version 3.9.0] ([dateof:3.9.0]) SQLite uses 
[http://semver.org|semantic versioning].
Prior to that time, SQLite employed a version identifier that
contained between two and four numbers.

<h2>The New Version Numbering System (After [dateof:3.9.0])</h2>

<p>
All SQLite releases starting with 3.9.0 use a three-number
"[http://semver.org|semantic version]" of the form X.Y.Z.
The first number X is only increased when there is a change that
breaks backward compatibility.  The
current value for X is 3, and the SQLite developers plan to support
................................................................................
numbering format used by for [SQLITE_VERSION_NUMBER] and
[sqlite3_libversion_number()] allows versions up to 3.999.999, which is
more than enough for the planned end-of-support date for SQLite
in 2050.  However, the current tarball naming conventions only
reserve two digits for the Y and so the naming format for downloads
will need to be revised in about 2030.

<h2>The Historical Numbering System (Before [dateof:3.9.0])</h2>

<p>This historical version numbering system used a two-, three-,
or four-number version:  W.X, W.X.Y, or W.X.Y.Z.
W was the file format: 1 or 2 or 3.
X was the major version.
Y was the minor version.
Z was used only for patch releases to fix bugs.
................................................................................
[partial indexes], and [indexes on expressions] are all examples of
"minor" changes.  Again, the distinction between "major" and "minor"
is subjective.

<p>
The patch level Z was historically only used for bug-fix releases
that changed only a small number of code lines.

<h2>Version History</h2>

<ul>
<li>[chronology|Chronology]
<li>[release history|Change log]
</ul>

Changes to schema.tcl.

15
16
17
18
19
20
21







22
23
24
25
26
27
28
..
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
    pagetitle TEXT,                       -- Brief title of the page
    pageabstract TEXT,                    -- Verbose title of the page
    filename TEXT UNIQUE NOT NULL,        -- Name of the HTML file
    parent INTEGER REFERENCES page        -- Aggregate page.  Usually NULL
  );
  CREATE INDEX IF NOT EXISTS page_parent ON page(parent);
  







  
  /*
  ** Each page has one or more fragments.  The first fragment has
  ** a NULL name.  All other fragments are named.
  */
  CREATE TABLE IF NOT EXISTS fragment(
    fragid INTEGER PRIMARY KEY,               -- ID for internal use only
................................................................................
    srcclass TEXT,           -- source class:  tcl, th3, src
    srccat TEXT,             -- source category.  Ex: tcl, th3/cov1
    srcfile TEXT,            -- document from which evidence extracted
    srcline INTEGER,         -- line number in source document
    url TEXT,                -- URL & fragment of htmlized evidence
    UNIQUE(srcfile, srcline, srccat)
  );
  CREATE INDEX ev_reqno ON evidence(reqno);
  COMMIT;
}
db eval {
  ATTACH 'history.db' AS history;
  BEGIN;
  CREATE TABLE IF NOT EXISTS history.allreq(
    reqno TEXT PRIMARY KEY,  -- Ex: R-12345-67890-...







>
>
>
>
>
>
>







 







|







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
..
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
    pagetitle TEXT,                       -- Brief title of the page
    pageabstract TEXT,                    -- Verbose title of the page
    filename TEXT UNIQUE NOT NULL,        -- Name of the HTML file
    parent INTEGER REFERENCES page        -- Aggregate page.  Usually NULL
  );
  CREATE INDEX IF NOT EXISTS page_parent ON page(parent);

  /*
  ** Alternative titles for pages
  */
  CREATE TABLE IF NOT EXISTS alttitle(
    alttitle TEXT,                      -- Alternative title
    pageid INTEGER REFERENCES page      -- The page with the alternative title
  );
  
  /*
  ** Each page has one or more fragments.  The first fragment has
  ** a NULL name.  All other fragments are named.
  */
  CREATE TABLE IF NOT EXISTS fragment(
    fragid INTEGER PRIMARY KEY,               -- ID for internal use only
................................................................................
    srcclass TEXT,           -- source class:  tcl, th3, src
    srccat TEXT,             -- source category.  Ex: tcl, th3/cov1
    srcfile TEXT,            -- document from which evidence extracted
    srcline INTEGER,         -- line number in source document
    url TEXT,                -- URL & fragment of htmlized evidence
    UNIQUE(srcfile, srcline, srccat)
  );
  CREATE INDEX IF NOT EXISTS ev_reqno ON evidence(reqno);
  COMMIT;
}
db eval {
  ATTACH 'history.db' AS history;
  BEGIN;
  CREATE TABLE IF NOT EXISTS history.allreq(
    reqno TEXT PRIMARY KEY,  -- Ex: R-12345-67890-...

Changes to wrap.tcl.

49
50
51
52
53
54
55

56
57
58
59
60
61
62
...
769
770
771
772
773
774
775






776
777
778
779
780
781
782
db eval {
  ATTACH 'history.db' AS history;
  BEGIN;
  DELETE FROM link;
  DELETE FROM keyword;
  DELETE FROM fragment;
  DELETE FROM page;

  DROP TABLE IF EXISTS expage;
}

# Load the syntax diagram linkage data
#
source $DOC/art/syntax/syntax_linkage.tcl

................................................................................
  set outfile [file root [file tail $infile]].html
  hd_open_main $outfile
  db eval {
    INSERT INTO page(filename,pagetitle)
    VALUES($outfile,$title);
  }
  set h(pageid) [db last_insert_rowid]






  hd_header $title $infile
  regsub -all {<tcl>} $in "\175; eval \173" in
  regsub -all {</tcl>} $in "\175; hd_puts \173" in
  eval "hd_puts \173$in\175"
  cd $::HOMEDIR
  hd_close_main
}







>







 







>
>
>
>
>
>







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
...
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
db eval {
  ATTACH 'history.db' AS history;
  BEGIN;
  DELETE FROM link;
  DELETE FROM keyword;
  DELETE FROM fragment;
  DELETE FROM page;
  DELETE FROM alttitle;
  DROP TABLE IF EXISTS expage;
}

# Load the syntax diagram linkage data
#
source $DOC/art/syntax/syntax_linkage.tcl

................................................................................
  set outfile [file root [file tail $infile]].html
  hd_open_main $outfile
  db eval {
    INSERT INTO page(filename,pagetitle)
    VALUES($outfile,$title);
  }
  set h(pageid) [db last_insert_rowid]
  while {[regexp {<alt-title>([^\n]*)</alt-title>} $in all alttitle]} {
    regsub {<alt-title>[^\n]*</alt-title>} $in {} in
    db eval {
      INSERT INTO alttitle(alttitle,pageid) VALUES($alttitle,$h(pageid));
    }
  }
  hd_header $title $infile
  regsub -all {<tcl>} $in "\175; eval \173" in
  regsub -all {</tcl>} $in "\175; hd_puts \173" in
  eval "hd_puts \173$in\175"
  cd $::HOMEDIR
  hd_close_main
}