summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-07issue: Parse known keys in list lines even if they are long.Arun Isaac
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.
2022-07-07tests: Add tests.Arun Isaac
* Makefile (GUILE, tests): New variables. (check): Run tests. * tests/issue.scm: New file.
2022-07-07issue: Comment on list-line->alist cond ladder.Arun Isaac
* tissue/issue.scm (list-line->alist): Comment on cond ladder.
2022-07-07issue: Rename hashtable-append! to hashtable-prepend!.Arun Isaac
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!.
2022-07-06website: Add home page.Arun Isaac
* website/index.skb: New file. * tissue.scm (#:web-files): Add index.html.
2022-07-06bin: Print out filenames when building website.Arun Isaac
* bin/tissue (pull): Print out filenames when building website.
2022-07-06bin: Allow everyone to read built website.Arun Isaac
* bin/tissue (pull): Allow everyone to read built website.
2022-07-06bin: Look for a default config file.Arun Isaac
* bin/tissue (%default-config-file): New variable. (default-configuration): Read default config file if it exists.
2022-07-05tissue.scm: Export issue files to HTML.Arun Isaac
* tissue.scm (#:web-files): Export issue files to HTML.
2022-07-05tissue: Deprecate tag listings configuration.Arun Isaac
* 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.
2022-07-05tissue: Delay default value of #:web-files.Arun Isaac
* tissue/tissue.scm (tissue-configuration): Delay default value of #:web-files.
2022-07-05bin: Refer to %xapian-index, not db-path, in main function.Arun Isaac
This bug was introduced in ec434ea0710e9ece9f5239c7fe2b1f965a53bea1 when copy-pasting code. * bin/tissue (main): Refer to %xapian-index, not db-path.
2022-07-05issues: Request inline image rendering feature.Arun Isaac
* issues/render-images-in-web-output.gmi: New file.
2022-07-05tissue.scm: Add tissue.scm.Arun Isaac
We finally start dogfooding. * tissue.scm: New file. * .gitignore: Add .tissue.
2022-07-05bin: Guard main function against all git errors.Arun Isaac
* bin/tissue (main): Guard against git errors printing the error message instead of a backtrace.
2022-07-05git: Add condition-git-error utility.Arun Isaac
* tissue/git.scm: Import (rnrs conditions) and (srfi srfi-1). (condition-git-error): New public function. * bin/tissue (default-configuration): Use condition-git-error.
2022-07-05bin: Do not error out when current repository is not found.Arun Isaac
* bin/tissue: Import (rnrs conditions). (default-configuration): Do not error out when current repository is not found.
2022-07-05web: server: Serve static files too.Arun Isaac
* tissue/web/server.scm: Import (srfi srfi-171) and (ice-9 filesystem). (%mime-types): New variable. (handler): Serve static files too.
2022-07-05web: server: Error out on unknown host.Arun Isaac
* tissue/web/server.scm: Import (rnrs conditions) and (rnrs exceptions). (handler): Error out on unknown host.
2022-07-05bin: Centralize `tissue pull' and `tissue run-web' configuration.Arun Isaac
* bin/tissue (default-configuration): New function. (tissue-pull, tissue-run-web): Use default-configuration.
2022-07-05bin: Set css host parameter by parameterizing the current repo.Arun Isaac
* bin/tissue (tissue-run-web): Set css host parameter by parameterizing the current git repository.
2022-07-05bin: Pass configuration file to `tissue run-web' as an option.Arun Isaac
* bin/tissue (tissue-run-web): Accept configuration file as a command-line option. (unrecognized-argument): New function.
2022-07-05web: server: Pass state directory to web server.Arun Isaac
* 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.
2022-07-05bin: Move stale index checks to main function.Arun Isaac
We want `tissue pull' to unconditionally rebuild the index. Hence, we move stale index checks out of the index function. * bin/tissue (index): Do not check if index is stale. Always rebuild index. (main): Call the index function only when index is stale.
2022-07-04bin: Add `tissue pull' subcommand.Arun Isaac
* bin/tissue (print-usage): List pull subcommand. (pull, tissue-pull): New functions. (main): Call tissue-pull.
2022-07-04git: Bind git_reference_set_target from libgit2.Arun Isaac
* tissue/git.scm: Import dereference-pointer and string->pointer from (system foreign). (reference-set-target!): New public function.
2022-07-04git: Bind git_reference_symbolic_target from libgit2.Arun Isaac
* tissue/git.scm: Import pointer->string from (system foreign). (reference-symbolic-target): New public function.
2022-07-04utils: Add call-with-temporary-directory utility.Arun Isaac
* tissue/utils.scm: Import (ice-9 filesystem). (call-with-temporary-directory): New function.
2022-07-04web: static: When building website, accept port to log to.Arun Isaac
* tissue/web/static.scm (build-website): Accept log-port argument specifying port to log to.
2022-07-04web: static: Deprecate mkdir-p in favor of guile-filesystem.Arun Isaac
* tissue/web/static.scm: Import (ice-9 filesystem). (mkdir-p): Delete function. (build-website): Use make-directories instead of mkdir-p. Remove TODO note about using guile-filesystem.
2022-07-04bin: Deprecate delete-directory in favor of guile-filesystem.Arun Isaac
* bin/tissue: Import (ice-9 filesystem). (delete-directory): Delete function. (index): Use delete-file-recursively instead of delete-directory.
2022-07-04git: Add %current-git-repository parameter.Arun Isaac
* tissue/git.scm (%current-git-repository): New public parameter. (current-git-repository): Use %current-git-repository.
2022-07-04git: Implement git-top-level in terms of current-git-repository.Arun Isaac
* tissue/git.scm (git-top-level): Implement git-top-level in terms of current-git-repository.
2022-07-04git: Implement current-git-repository using repository-open-ext.Arun Isaac
repository-open-ext obsoletes git-top-level. * tissue/git.scm (current-git-repository): Implement using repository-open-ext instead of git-top-level.
2022-07-04git: Add clone-options utility.Arun Isaac
* tissue/git.scm: Import (bytestructures guile). (clone-options): New function.
2022-07-04bin: Separate out indexing into new function.Arun Isaac
* bin/tissue (index): New function. (main): Use index.
2022-07-04bin: Generalize delete-xapian-index to delete-directory.Arun Isaac
* bin/tissue (delete-xapian-index): Generalize to delete-directory. (main): Use delete-directory instead of delete-xapian-index.
2022-07-04bin: Unmemoize load-config.Arun Isaac
Memoizing load-config is untenable when dealing with multiple repositories in a single command invocation. * bin/tissue (load-config): Unmemoize. (tissue-web, main): Call load-config only once.
2022-07-03git: Fill git-top-level docstring.Arun Isaac
* tissue/git.scm (git-top-level): Fill docstring.
2022-07-03bin: Correctly support REPL listening on TCP socket.Arun Isaac
Prior to this, the REPL would listen on a Unix socket even if a TCP socket was requested. * bin/tissue (tissue-run-web): Correctly support REPL listening on TCP socket.
2022-07-03bin: Print Unix socket path, not port, for REPL listening on it.Arun Isaac
* bin/tissue (tissue-run-web): Print Unix socket path, not port, for REPL listening on it.
2022-07-03issue: Use string-remove-prefix from (tissue utils).Arun Isaac
* tissue/issue.scm (list-line->alist, file-details): Use string-remove-prefix from (tissue utils). (file-details): Delete function.
2022-07-03conditions: Deprecate &issue-file-not-found-error.Arun Isaac
The &issue-file-not-found-error cannot occur anymore now that we are reading files directly from the git repository and not from the working tree. * tissue/conditions.scm: Delete file. * bin/tissue, tissue/web/server.scm, tissue/web/static.scm: Do not import (tissue conditions). * bin/tissue (main): Do not guard against &issue-file-not-found-error conditions.
2022-07-03tissue: Read files from git repository, not from the working tree.Arun Isaac
This also frees us from checking if the file actually exists in the working tree. * bin/tissue (tissue-show): Use call-with-file-in-git instead of call-with-input-file. (load-config): Use call-with-file-in-git and eval-string instead of load. * tissue/document.scm: Import (tissue git). (document-text, read-gemtext-document): Use call-with-file-in-git instead of call-with-input-file. * tissue/issue.scm (file-details): Read from a port instead of from a file. (read-gemtext-issue): Call file-details with a port reading the file committed into the git repository. * tissue/web/server.scm: Import (tissue git). * tissue/web/static.scm (exporter): Use call-with-file-in-git instead of call-with-input-file.
2022-07-03git: Add call-with-file-in-git utility.Arun Isaac
* tissue/git.scm (call-with-file-in-git): New public function.
2022-07-03git: Find git tracked files from HEAD, not from index.Arun Isaac
The index is the staging area. We really only want to look at files already committed into the git repository. In addition, a pleasant side-effect is that this gets rid of many of the additional bindings from libgit2. * tissue/git.scm: Import only %null-pointer from (system foreign). Do not import (bytestructures guile). (pointer->bytestructure, bytestructure->pointer, pointer->index-time, pointer->index-entry, repository-index, index-version, index-entry-count, index-entry, index-entries): Delete functions. (%oid, %index-time, %index-entry): Delete variables. (<index-time>, <index-entry>): Delete types. (head-tree): New function. (git-tracked-files): Find git tracked files from HEAD, not from index.
2022-07-01web: server: Make CSS a host-specific parameter.Arun Isaac
* bin/tissue (tissue-run-web): Pass CSS as a host-specific parameter. * tissue/web/server.scm (handler): Remove css argument. Accept CSS as a host-specific parameter. (start-web-server): Remove css argument.
2022-07-01bin: Do not build index or parameterize for `tissue run-web'.Arun Isaac
* bin/tissue (main): Do not build index or parameterize for `tissue run-web'.
2022-06-30web: server: Support virtual hosts.Arun Isaac
* bin/tissue (tissue-run-web): Add hosts configuration option. * tissue/web/server.scm: Import (tissue utils). (start-web-server): Add host parameters argument. (handler): Read database based on Host header.
2022-06-30web: server: Grant read-write permissions to all on Unix socket.Arun Isaac
* tissue/web/server.scm (start-web-server): Grant read-write permissions to all on Unix socket.