summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-29bin: Allow pulling only one host in each invocation.Arun Isaac
* bin/tissue (tissue-pull): Allow pulling only one host in each invocation.
2023-01-29bin: Show options placeholder in tissue-pull subcommand usage.Arun Isaac
* bin/tissue (tissue-pull): Show options placeholder in subcommand usage.
2023-01-29git: Deprecate call-with-file-in-git.Arun Isaac
Functions called by call-with-file-in-git may expect to read files directly off the filesystem. These functions are not all within the user's control and cannot be rewritten to do otherwise. It is more robust to provide a filesystem checkout of the git repository like these functions expect. In this commit, we deprecate call-with-file-in-git and replace calls to it with call-with-input-file. These invocations have been arranged such that they all happen at the top level of a repository checkout. * tissue/git.scm (call-with-file-in-git): Delete function. * .dir-locals.el (scheme-mode): Unregister it. * bin/tissue (tissue-show, load-config), tissue/file-document.scm (file-text, read-gemtext-document), tissue/issue.scm (read-gemtext-issue): Replace call-with-file-in-git with call-with-input-file. (pull, tissue-web): Call load-config from the top level of a repository checkout.
2023-01-29bin: Pass list of indexed documents explicitly to index function.Arun Isaac
* bin/tissue (index): Accept list of indexed documents as an argument instead of implicitly accessing it by loading the config. (pull, main): Pass list of indexed documents to index.
2023-01-29web: Explain why we pass a project thunk to the dev server.Arun Isaac
* tissue/web/dev.scm (handler): Explain why we pass in a project thunk.
2023-01-29web: Do not temporarily checkout repository when serving it.Arun Isaac
Now that snippet source texts are interred into the xapian index, the web server does not need a repository checkout. * bin/tissue (tissue-web): Do not temporarily checkout repositories being served. * tissue/web/server.scm (handler): Do not change into repository directory. * tissue/git.scm (call-with-temporary-checkouts): Delete function. * .dir-locals.el (scheme-mode): Unregister it.
2023-01-29document: Inter snippet source text into the xapian index.Arun Isaac
We store snippet source text in a slot of the <document> class thus interring into the xapian index. This allows us to render search snippets using only the xapian index without referring back to the git repository. * tissue/document.scm (<document>)[snippet-source-text]: New slot. * tissue/document.scm (document-snippet-source-text): Delete method. (document-html-snippet): Remove blank lines from snippet source text before generating a snippet. * tissue/commit.scm (document-snippet-source-text): Delete method. (repository-commits): Initialize snippet-source-text. * tissue/skribilo.scm (fragment-text): New function. (document-fragment): Initialize snippet-source-text. (document-text): Use fragment-text. (document-snippet-source-text): Delete method. * tissue/file-document.scm (file-text): New function. (document-text): Use file-text. (read-gemtext-document): Initialize snippet-source-text. * tissue/issue.scm (read-gemtext-issue): Initialize snippet-source-text. * issues/skribilo-fragment-snippets-need-code-from-repo.gmi: Close issue.
2023-01-29commit: Explain use of commit-body for snippet source text.Arun Isaac
* tissue/commit.scm (document-snippet-source-text): Explain use of commit-body.
2023-01-29skribilo: Temporarily disable search snippets.Arun Isaac
* tissue/skribilo.scm (document-snippet-source-text): New method. * issues/skribilo-fragment-snippets-need-code-from-repo.gmi: New issue.
2023-01-29bin: Do not change into state directory when checking out.Arun Isaac
Since the checkouts are created in the system-dependent temporary directory, we no longer need to change into the state directory. * bin/tissue (tissue-web): Do not change into state directory when checking out.
2023-01-29git: Create temporary checkout in temporary directory.Arun Isaac
* tissue/git.scm (call-with-temporary-checkout): Create temporary checkout in temporary directory, not in current directory.
2023-01-28web: Change to repository directory when handling requests.Arun Isaac
Files in the repository may be read. So, we must change into a checkout of the repository when handling requests. * tissue/web/server.scm (handler): Change to repository directory when handling requests.
2023-01-28bin: Pass temporary checkout to server handler.Arun Isaac
* bin/tissue (tissue-web): Pass temporary checkout of git repository, not merely a bare repository, to server handler.
2023-01-28bin: Use call-with-temporary-checkout when pulling.Arun Isaac
* bin/tissue (pull): Use call-with-temporary-checkout.
2023-01-28git: Abstract temporary checkout.Arun Isaac
* tissue/git.scm (call-with-temporary-checkout, call-with-temporary-checkouts): New public functions. * .dir-locals.el (scheme-mode): Set scheme-indent-function of call-with-temporary-checkout and call-with-temporary-checkouts to 1.
2023-01-27website: Publish release tarballs on website.Arun Isaac
* tissue.scm (#:web-files): Add release files. * website/index.skb (Download): New section.
2023-01-27website: Add tissue 0.1.0 release tarball.Arun Isaac
* website/releases/tissue-0.1.0.tar.lz, website/releases/tissue-0.1.0.tar.lz.asc: New files.
2023-01-27Makefile: Do not use pre-inst-env.v0.1.0Arun Isaac
* Makefile (check): Replace pre-inst-env with --no-auto-compile and -L.
2023-01-27Makefile: Add tarball generation rules.Arun Isaac
* Makefile (version, GIT, GPG, LZIP, distribute_files, dist_archive): New variables. (.PHONY): Add dist. (dist, $(dist_archive), %.asc): New targets.
2023-01-27website: Link to search interface from home page.Arun Isaac
* website/index.skb (Documentation): Link to search interface.
2023-01-27tissue.scm: Replace filter-map with map.Arun Isaac
No elements are being filtered. filter-map is unnecessary. * tissue.scm (#:web-files): Replace filter-map with map.
2023-01-27doc: Add Tutorial.Arun Isaac
* doc/tissue.skb (Tutorial): New chapter. * tissue.scm (#:indexed-documents): Index it.
2023-01-27doc: Add file function.Arun Isaac
* doc/skribilo.scm (file): New public function.
2023-01-27issues: Resolve aliases when searching for people.Arun Isaac
* issues/resolve-aliases-when-searching-for-people.gmi: New file.
2023-01-27issue: Stop exporting deleted function.Arun Isaac
* tissue/issue.scm: Do not export index-issue.
2023-01-26issue: Index names of people as non-boolean terms.Arun Isaac
Names of people as non-boolean since it may be required to match them partially. Think searching for "arun" when the full name is "Arun Isaac". * tissue/issue.scm (document-boolean-terms): Remove creator, last updater and assigned terms. (document-term-generator): New method. * tissue/search.scm (%boolean-prefixes): Move creator, lastupdater and assigned to ... (%boolean-prefixes): ... here.
2023-01-26web: Clean up socket file when Unix sockets are used.Arun Isaac
* tissue/web/server.scm (start-web-server): Clean up socket file when Unix sockets are used.
2023-01-26git: Infer changes by root commit correctly.Arun Isaac
* tissue/git.scm (commit-deltas): Rename to ... (commit-file-changes): ... this. Return list of pairs mapping old files to new files. (file-modification-table): Use commit-file-changes instead of commit-deltas. Adapt to new return value. * tests/git.scm: New file. * .dir-locals.el (scheme-mode): Set scheme-indent-function for with-variable and with-variables.
2023-01-26web: Log complete request URI, not just the path.Arun Isaac
* tissue/web/server.scm (log-request): Log complete request URI, not just the path.
2023-01-23bin: Add repository top level directory to load path.Arun Isaac
* bin/tissue (main, pull): Add top level directory of repository to load path.
2023-01-23bin: Create xapian directory only when it does not exist.Arun Isaac
* bin/tissue (pull): Create xapian directory only when it does not exist.
2023-01-23bin: Change to temporary clone before indexing.Arun Isaac
Indexing might refer to files on the filesystem. * bin/tissue (pull): Change to temporary clone of repository before indexing.
2023-01-23web: Change to temporary clone before building website.Arun Isaac
* tissue/web/static.scm (build-website): Expect to be at the top level of the repository to be exported. * bin/tissue (pull): Create a temporary clone of the repository and change to it before calling build-website.
2023-01-23website: Link to the manual.Arun Isaac
* website/index.skb (Documentation): New section.
2023-01-23web: Allow files to shadow the search page.Arun Isaac
* tissue/web/dev.scm (handler): Allow files to shadow the search page. * tissue/web/server.scm (handler): Allow files to shadow the search page.
2023-01-23Makefile: Bump copyright year.Arun Isaac
* Makefile: Add 2023 to Arun Isaac's copyright header.
2023-01-23Makefile: Use install instead of cp and mkdir.Arun Isaac
The --parents flag of cp is not portable to macOS. Besides, install correctly replaces destination files when they already exist. * Makefile (install): Use install instead of cp and mkdir.
2023-01-23tests: Remove tests for pairify.Arun Isaac
pairify was deprecated. * tests/tissue.scm (pairify): Delete variable. ("pairify"): Delete test.
2023-01-23tissue.scm: Index the manual.Arun Isaac
* tissue.scm: Import (tissue skribilo). (#:indexed-documents): Add manual.
2023-01-23dir-locals.el: Add Emacs directory local variables.Arun Isaac
* .dir-locals.el: New file.
2023-01-23skribilo: Add skribilo fragment document.Arun Isaac
* tissue/skribilo.scm: New file.
2023-01-23issue: Remove unused import.Arun Isaac
* tissue/issue.scm: Do not import (git).
2023-01-23file-document: Export commits-affecting-file as a utility.Arun Isaac
* tissue/file-document.scm (commits-affecting-file): New public function. (read-gemtext-document): Use commits-affecting-file.
2023-01-23file-document: Set document type of <file-document> to document.Arun Isaac
Earlier, the document type returned was "file-document". It only seemed to work because xapian split them into two terms—"file" and "document". * tissue/file-document.scm (document-type): Return "document". * tissue/issue.scm (document-type): New generic method.
2023-01-23file-document: Set document type of <file-document> to document.Arun Isaac
Earlier, the document type returned was "file-document". It only seemed to work because xapian split them into two terms—"file" and "document". * tissue/file-document.scm (document-type): Return "document".
2023-01-23commit: Refer to correct metasyntactic variable in docstring.Arun Isaac
* tissue/commit.scm (document-id-term, document-recency-date): Refer to metasyntactic variable COMMIT, not DOCUMENT.
2023-01-23search: Do not use MSetIterator-mset-get.Arun Isaac
We already have the mset from enquire-mset. * tissue/search.scm (search-fold): Do not use MSetIterator-mset-get. Reuse mset from enquire-mset.
2023-01-23web: Express gemtext-exporter in terms of skribe-exporter.Arun Isaac
The gemtext exporter is just a skribe exporter with different defaults. * tissue/web/static.scm (gemtext-exporter): Express in terms of skribe-exporter.
2023-01-23search: Limit to 1000 search results by default.Arun Isaac
* tissue/search.scm (search-fold): Limit to 1000 search results by default. * tissue/web/server.scm (search-handler): Limit to 1000 search results by default.
2023-01-23guix.scm: Depend on pre-release guile-xapian.Arun Isaac
* guix.scm: Import guile-xapian with the guix: prefix. (guile-xapian): New variable.