Age | Commit message (Collapse) | Author |
|
* tissue/git.scm: Import (rnrs exceptions).
(git-tracked-file?): New public function.
|
|
If the response to a static file request is returned as a
procedure, (web server) tries to interpret the response as text. This
results in encoding errors with binary files. Fixing this is not worth
the trouble since (tissue web server) is anyway not meant to serve
large static files. Large static files should be served using a more
capable server such as nginx.
* tissue/web/server.scm (handler): Return response to a static file
request as a bytevector, instead of as a procedure.
|
|
* tissue/commit.scm (document->sxml): Generate document type
identifier.
* tissue/file-document.scm (document->sxml): Generate document type
identifier.
* tissue/issue.scm (document->sxml): Generate document type
identifier.
* tissue/web/server.scm (%css): Style document type identifiers.
|
|
* tissue/web/server.scm (%css)[.search-filter]: Remove rounded edges.
|
|
* tissue/web/server.scm (%css)[.tag a]: Remove rounded edges and
reduce padding.
|
|
* tissue/issue.scm (document->sxml): Render tags as an unordered list.
* tissue/web/server.scm (%css): Style list items with tag classes, not
anchor tags.
|
|
* tissue/web/server.scm (make-search-page): Link to upstream
Xapian::QueryParser syntax documentation.
|
|
* tissue/file-document.scm (print, document->sxml): Show created and
last updated dates in listings.
* tissue/web/server.scm (%css): Put DOC identifier before metadata,
not before title.
|
|
* tissue/web/server.scm (matches): Accept parsed search query.
(handler): Parse provided search query only once.
|
|
* issues/sort-by-date.gmi: Close issue.
* tissue/search.scm (term-ref, query-terms-every): New functions.
(boolean-query?): New public function.
(search-fold): Sort by date on strictly boolean queries.
* tissue/web/server.scm (handler): Sort by date on strictly boolean
queries.
|
|
* tissue/utils.scm (string-contains?): New public function.
|
|
* tissue/issue.scm (document->sxml): Quote tags with spaces instead of
hyphenating them.
|
|
* tissue/search.scm: Import (ice-9 match).
(make-query-parser): New function.
(%prefixes, %boolean-prefixes, query-parser): New variables.
(parse-query): Use query-parser.
|
|
Metadata that will be used in boolean filtering should be indexed as
boolean terms, not as free text. This also results in the happy
coincidence that we no longer need a specialized
document-term-generator generic method for <issue> and <commit>.
* tissue/document.scm (document-boolean-terms): New public generic
function.
(document-term-generator): Use document-boolean-terms.
* tissue/issue.scm (document-boolean-terms): New generic method.
(document-term-generator): Delete generic method.
* tissue/commit.scm (document-boolean-terms): New generic method.
(document-term-generator): Delete generic method.
|
|
* tissue/document.scm (document-recency-date): Declare public generic
function.
(document-term-generator): Store serialized date in slot 0 of Xapian
document.
* tissue/file-document.scm (document-recency-date): New generic
method.
* tissue/commit.scm (document-recency-date): New generic method.
|
|
* tissue/document.scm (document-snippet-source-text): Use
string-blank?.
|
|
* tissue/search.scm: Import (tissue utils).
(parse-query): Match all on blank query, not null query.
|
|
* tissue/utils.scm (string-blank?): New function.
|
|
The output directory is usually a randomly named temporary
directory. Logging it is leaking an implementation detail.
* tissue/web/static.scm (build-website): Do not log output directory
name.
|
|
* tissue/document.scm (object->scm): Drop unbound slots, do not raise
an error.
|
|
* tissue/document.scm: Do not import (rnrs hashtables).
|
|
We move the posts slot of <issue> into the <file-document> parent
class as a commits slot. We also no longer store the creator,
created-date, last-updater, last-updated-date of <issue> in
slots. Rather, we compute them on-demand from the commits slot.
* tissue/file-document.scm: Import (rnrs hashtables), (srfi
srfi-1), (srfi srfi-26), (git), (tissue commit) and (tissue person).
(<file-document>)[commits]: New slot.
(file-document-creator, file-document-created-date,
file-document-last-updater, file-document-last-updated-date): New
public functions.
(read-gemtext-document): Initialize commits slot.
* tissue/issue.scm (file-modification-table-for-current-repository):
Move to (tissue file-document).
(<issue>)[creator, created-date, last-updater, last-updated-date,
posts]: Delete slots.
(<post>): Delete class.
(document-term-generator, print, print-issue-to-gemtext,
document->sxml): Use file-document-creator,
file-document-created-date, file-document-last-updater,
file-document-last-updated-date and file-document-commits instead of
issue-creator, issue-created-date, issue-last-updater,
issue-last-updated-date and issue-posts.
(read-gemtext-issue): Use read-gemtext-document. Do not initialize
creator, created-date, last-updater and last-updated-date slots.
|
|
* tissue/file-document.scm (read-gemtext-document): Fix typo reade
with read in docstring.
|
|
* tissue/document.scm: Do not import (srfi srfi-171).
(<file-document>, document-type, document-id-term, document-text,
document-term-generator, print, document->sxml,
read-gemtext-document): Move to (tissue file-document).
(document-id-term, document-text, print, document->sxml): Declare as
generic functions.
* tissue/file-document.scm: New file.
* tissue/issue.scm, bin/tissue: Import (tissue file-document).
|
|
* tissue/web/server.scm (%css)[.search-results-statistics,
.search-results-statistics li, .search-results-statistics a,
.current-search-type]: New rules.
* tissue/web/server.scm (make-search-page): Summarize number of
results by type.
(query-string, matches): New functions.
(handler): Pass the number of matches by type to make-search-page.
* issues/add-links-to-filter-documents-by-type.gmi: Close issue.
|
|
* tissue/search.scm (parse-query): By default, search all documents
not just issues.
|
|
* tissue/commit.scm: New file.
* tissue/web/server.scm (%css)[.search-result-commit]: Add COMMIT
marker.
* bin/tissue: Import (tissue commit).
* tissue.scm (#:indexed-documents): Add commits.
* issues/index-commit-messages.gmi: Close issue.
|
|
* bin/tissue (index): Move indexing document type into
document-term-generator generic function.
* tissue/document.scm (document-term-generator): Index document type.
|
|
* tissue/git.scm (commit-author-date): New public function.
(commit-date): Delete function.
* tissue/issue.scm (read-gemtext-issue): Use commit-author-date
instead of commit-date.
|
|
* tissue/document.scm (document-snippet-source-text): New generic
method.
(document-html-snippet): Use document-snippet-source-text.
|
|
We need to prefix the ID term in order to distinguish between future
document types (such as the commit document type) that may not be
based off a file.
* tissue/document.scm (document-id-term): Prefix ID term with "file."
indicating the document type.
|
|
* bin/tissue: Import (tissue person).
* tissue/issue.scm: Import (tissue person).
(%aliases, resolve-alias, index-person!): Move to (tissue person).
* tissue/person.scm: New file.
|
|
* tissue/document.scm (document-type): Generalize generic method of
<document> to apply to most child classes. Pass on generic method of
<file-document> to that of <document>.
* tissue/issue.scm (document-type): Remove generic method for <issue>
class.
|
|
* tissue/issue.scm (document->sxml): Hyphenate tag in search query if
it has spaces.
|
|
* tissue/tissue.scm: Import (ice-9 match).
(<tissue-configuration>)[indexed-documents]: Rename getter to
delayed-tissue-configuration-indexed-documents.
(tissue-configuration-indexed-documents): New function.
(pairify): New function.
(tissue-configuration): Delay #:indexed-documents argument too.
* tests/tissue.scm: New file.
|
|
* tissue/web/server.scm (handler): Serve html files even if they don't
have the html extension.
|
|
* tissue/utils.scm (string-remove-suffix): New public function.
|
|
* tissue/issue.scm (file-details): Allow specifying tags with keyword
and tag singulars.
|
|
We drop the restriction that values in key-value pairs should be 2
words or less. Instead, if the key is a known key such as "keywords:",
"tags:" or "status:", we always accept it as a key.
* tissue/issue.scm (file-details): Parse known keys in list lines even
if they are long.
* tests/issue.scm ("Parse keywords even if they are long"): New test.
|
|
* tissue/issue.scm (list-line->alist): Comment on cond ladder.
|
|
Even hashtable-append! was prepending, not appending. We change its
name to suit.
* tissue/issue.scm (hashtable-append!): Rename to hashtable-prepend!.
(file-details): Call hashtable-prepend! instead of hashtable-append!.
|
|
* tissue/tissue.scm (<tissue-configuration>)[web-tags-path]: Delete
field.
* tissue/tissue.scm (tissue-configuration): Remove web-tags-path
argument.
* tissue/web/static.scm (build-website): Remove tags-path
documentation in docstring.
|
|
* tissue/tissue.scm (tissue-configuration): Delay default value of
#:web-files.
|
|
* tissue/git.scm: Import (rnrs conditions) and (srfi srfi-1).
(condition-git-error): New public function.
* bin/tissue (default-configuration): Use condition-git-error.
|
|
* tissue/web/server.scm: Import (srfi srfi-171) and (ice-9
filesystem).
(%mime-types): New variable.
(handler): Serve static files too.
|
|
* tissue/web/server.scm: Import (rnrs conditions) and (rnrs
exceptions).
(handler): Error out on unknown host.
|
|
* tissue/web/server.scm: Import (git) and (tissue git).
(handler, start-web-server): Accept path to state directory instead of
to the xapian index.
* bin/tissue (tissue-run-web): Pass state directory to
start-web-server.
|
|
* tissue/git.scm: Import dereference-pointer and string->pointer
from (system foreign).
(reference-set-target!): New public function.
|
|
* tissue/git.scm: Import pointer->string from (system foreign).
(reference-symbolic-target): New public function.
|
|
* tissue/utils.scm: Import (ice-9 filesystem).
(call-with-temporary-directory): New function.
|