Age | Commit message (Collapse) | Author |
|
The server should be unaware of the specifics of the state directory
and its directory structure. It should be explicitly passed paths to
all necessary directories. This way, the server can be repurposed for
other applications such as the development web server---something that
is coming soon in the subsequent commits.
* tissue/web/server.scm (handler): Remove state-directory
argument. Use directory paths in hosts argument.
(start-web-server): Remove state-directory argument. Do not pass on
state-directory to handler.
* bin/tissue (tissue-web): Pass directory paths explicitly to
start-web-server in hosts argument. Do not pass the removed
state-directory argument.
|
|
* tissue/web/server.scm (handler): Add article 'the' in docstring.
|
|
* tissue/utils.scm (call-with-temporary-directory): Allow specifying
directory in which to create temporary directory.
|
|
`tissue pull' may be run in CI with the logs getting published. It is
better to not expose the canonical paths in such public logs.
* bin/tissue (pull): Do not print canonical paths.
|
|
* 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).
|
|
* issues/incremental-search.gmi: New file.
|
|
* issues/search-suggestions.gmi: New file.
|
|
* issues/sort-by-date.gmi: New file.
|
|
* 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.
|
|
* bin/tissue (tissue-run-web): Rename to tissue-web, and update
synopsis in usage summary.
(print-usage, main): Rename run-web to web.
|
|
* bin/tissue (tissue-web): Delete function.
(print-usage): Unlist web subcommand.
(main): Do not call tissue-web.
|
|
* tissue/issue.scm (document->sxml): Hyphenate tag in search query if
it has spaces.
|
|
This simplifies the interface obviating the need for an
<indexed-document> type.
* bin/tissue: Do not import (srfi srfi-9).
(<indexed-document>): Delete type.
(index): Expect indexed documents to be a list of document objects.
* tissue.scm (#:indexed-documents): Pass in a list of document
objects, instead of a list of <indexed-document> objects.
|
|
If guile is passed all test files at once, it only runs the first one.
* Makefile (check): Run tests using a for loop.
|
|
* 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.scm (#:indexed-documents): Remove html extension from web
URIs.
|
|
* 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.
|
|
* issues/issue-templates.gmi: New file.
|