summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-06.guix: Use current-source-directory in git-predicate.HEADmainArun Isaac
With "..", the git-predicate fails and filters nothing. * .guix/tissue-package.scm (tissue)[source]: Use current-source-directory in git-predicate.
2023-07-06Fix package build in channel and CI job.Arun Isaac
* .guix/tissue-package.scm (tissue)[source]: Use ".." instead of dirname and current-source-directory. Add constant function as fallback for git predicate.
2023-07-06Make repository a guix channel.Arun Isaac
* .guix-authorizations, .guix-channel: New files. * guix.scm: Convert to a symlink pointing to .guix/tissue-package.scm. Move original there. * .guix/tissue-package.scm: Convert into a module with public packages.
2023-06-06bin: Preserve 0th command line argument when using search alias.Morgan Smith
There is literally no reason to do this as it's never used but it is technically more correct. * bin/tissue (main): Preserve 0th command line argument when using search alias. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-06-06bin: Allow main file to be loaded without executing main.Morgan Smith
Call main from the shebang command instead of calling it directly. This allows us to run "guile -l bin/tissue" without actually running main. This seems to be important for Emacs Geiser as it freezes up without this fix. * bin/tissue: Call main from shebang. Do not call main directly. (main): Accept args as regular argument instead of as a rest argument. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-06-06Makefile: Make and install info documentation.Morgan Smith
* Makefile (SKRIBILO, infodir, documentation, info): New variables. (distribute_files): Add $(documentation) and doc/skribilo.scm. (all): Depend on $(info). (%.info): New target. (install): Install $(info). (clean): Clean $(info). Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30website: Thank GeneNetwork team.Arun Isaac
* website/index.skb (Contributors): Add Frederick Muriuki Muriithi, jgart, Munyoki Kilyungi and Pjotr Prins.
2023-05-30tissue.scm: Add current directory to load path.Arun Isaac
Prior to this commit, tissue would be unable to find (doc skribilo) during indexing and crash. * tissue.scm: Add current directory to load path. Bug reported by: Morgan Smith <Morgan.J.Smith@outlook.com>
2023-05-30bin: Actually load config file instead of reading and evaluating it.Arun Isaac
Reading and evaluating the config file was a hack put in when the config file was read directly from the git repository without checking it out. We need this no longer. Besides, it is an inconvenience because the config file cannot use current-filename. * bin/tissue (load-config): Actually load config file instead of reading and evaluating the read string.
2023-05-30website: Thank Morgan Smith.Arun Isaac
* website/index.skb (Contributors): Thank Morgan Smith.
2023-05-30guix.scm: Work around libgit2 repository ownership validation bug.Arun Isaac
* guix.scm: Import guile-git from (gnu packages guile) and libgit2-1.3 from (gnu packages version-control) with the guix: prefix. (libgit2, guile-git): New variables. (tissue)[inputs]: Use guile-git.
2023-05-30guix.scm: Simplify.Morgan Smith
* guix.scm (skribilo-latest, guile-xapian): Delete variables. (tissue): Inherit from upstream Guix package. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30Add Emacs mode identifiers to ambiguous files.Morgan Smith
* bin/tissue: Add Emacs mode identifier. * pre-inst-env: Add Emacs mode identifier. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30bin: Enable use of pagers other then less.Morgan Smith
Previous logic assumed that the pager could accept the command line argument "--raw". Replace this logic by setting the environment variable "LESS". This idea is inspired by git. * bin/tissue (main): Set "LESS" environment variable. (tissue-search): Don't run pager with "--raw" argument. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
2023-05-30Makefile: Explicitly list only scm files in tests.Arun Isaac
* Makefile (tests): Explicitly list only scm files.
2023-04-18web: server: Handle files without extension.Arun Isaac
* tissue/web/server.scm (mime-type-for-extension): Handle files without extension. * tests/web/server.scm: New file.
2023-04-15issue: Ignore preformatted blocks.Arun Isaac
* tissue/issue.scm (file-details): Ignore preformatted blocks. * tests/issue.scm ("Ignore preformatted block"): New test. * issues/ignore-preformatted-blocks-in-gemtext-parser.gmi: Close issue.
2023-04-15issue: Allow checkboxes without a space.Arun Isaac
* tissue/issue.scm (file-details): Allow checkboxes without a space. * tests/issue.scm ("Allow checkboxes without a space"): New test. * issues/allow-checkboxes-without-a-space.gmi: Close issue.
2023-04-15tests: Add test for checkbox parsing.Arun Isaac
* tests/issue.scm ("Parse checkboxes"): New test.
2023-04-15tests: Sort alist entries after converting hashtable.Arun Isaac
The order of entries in an association list is insignificant. Sorting association list entries prevents tests from breaking simply because the order of the entries is different. * tests/issue.scm: Import (ice-9 match). (hashtable->alist): Sort alist entries after converting hashtable. Document this in the docstring.
2023-04-14issues: Provide app bundle.Arun Isaac
* issues/provide-app-bundle.gmi: New issue.
2023-04-14issues: Set up public inbox.Arun Isaac
* issues/set-up-public-inbox.gmi: New issue.
2023-04-14issues: Mirror on GitHub.Arun Isaac
* issues/mirror-on-github.gmi: New issue.
2023-04-14issues: Indicate incompatibility between state and web server.Arun Isaac
* issues/incompatibility-between-state-and-web-server.gmi: New issue.
2023-04-14issues: Put up FOSDEM 2023 video on website.Arun Isaac
* issues/put-up-fosdem-2023-video-on-website.gmi: New issue.
2023-04-14issues: Handle unicode characters correctly in C locale.Arun Isaac
* issues/handle-unicode-characters-correctly-in-C-locale.gmi: New issue.
2023-03-21website: Remove small caps for headings.Arun Isaac
* website/style.css (h1, h3): Delete styles.
2023-03-21website: List feature highlights on home page.Arun Isaac
* website/index.skb (Feature highlights): New section.
2023-03-21doc: Describe tissue's non-discussion-orientedness.Arun Isaac
* doc/tissue.skb (Introduction)[Why tissue?]: New section.
2023-02-04skribilo: Check if node has identifier.Arun Isaac
* tissue/skribilo.scm (document-node): Check if node has identifier before comparing that identifier.
2023-01-31issues: Ignore preformatted blocks when parsing issues.Arun Isaac
* issues/ignore-preformatted-blocks-in-gemtext-parser.gmi: New issue.
2023-01-31issues: Clean up Unix socket when deployed with shepherd.Arun Isaac
* issues/tissue-does-not-clean-up-unix-socket-when-deployed-with-shepherd.gmi: New issue.
2023-01-29bin: Indicate in synopsis that host is required for tissue-pull.Arun Isaac
* bin/tissue (tissue-pull): Indicate in synopsis that host is a required argument.
2023-01-29issues: Add corrupted double-linked list issue.Arun Isaac
* issues/corrupted-double-linked-list.gmi: New issue.
2023-01-29bin: Remove note about restoring load path.Arun Isaac
Restoring the load path since code could already have been loaded into the guile process and mutated its state. Besides, now that we restrict each tissue-pull invocation to only one host, it is not necessary to restore the load path. * bin/tissue (pull): Remove TODO note about restoring load path.
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.