summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-13issue: Move <issue> posts slot into <file-document>.Arun Isaac
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.
2022-07-13file-document: Fix typo in read-gemtext-document docstring.Arun Isaac
* tissue/file-document.scm (read-gemtext-document): Fix typo reade with read in docstring.
2022-07-13document: Move <file-document> code to a new (tissue file-document).Arun Isaac
* 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).
2022-07-11issues: Implement incremental search.Arun Isaac
* issues/incremental-search.gmi: New file.
2022-07-11issues: Implement search suggestions.Arun Isaac
* issues/search-suggestions.gmi: New file.
2022-07-11issues: Sort by date.Arun Isaac
* issues/sort-by-date.gmi: New file.
2022-07-11web: server: Summarize number of results by type.Arun Isaac
* 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.
2022-07-11search: By default, search all documents not just issues.Arun Isaac
* tissue/search.scm (parse-query): By default, search all documents not just issues.
2022-07-09commit: Index commit messages too.Arun Isaac
* 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.
2022-07-09bin: Move indexing document type into document-term-generator.Arun Isaac
* bin/tissue (index): Move indexing document type into document-term-generator generic function. * tissue/document.scm (document-term-generator): Index document type.
2022-07-09git: Use commit author date, not committer date.Arun Isaac
* 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.
2022-07-09document: Make snippet source text extraction a generic function.Arun Isaac
* tissue/document.scm (document-snippet-source-text): New generic method. (document-html-snippet): Use document-snippet-source-text.
2022-07-09document: Prefix ID term with document type.Arun Isaac
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.
2022-07-09issue: Move person related functions to (tissue person).Arun Isaac
* 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.
2022-07-09document: Generalize document-type method of <document> parent class.Arun Isaac
* 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.
2022-07-09bin: Rename run-web subcommand to web.Arun Isaac
* bin/tissue (tissue-run-web): Rename to tissue-web, and update synopsis in usage summary. (print-usage, main): Rename run-web to web.
2022-07-09bin: Deprecate tissue web subcommand.Arun Isaac
* bin/tissue (tissue-web): Delete function. (print-usage): Unlist web subcommand. (main): Do not call tissue-web.
2022-07-09issue: Hyphenate tag in search query if it has spaces.Arun Isaac
* tissue/issue.scm (document->sxml): Hyphenate tag in search query if it has spaces.
2022-07-09bin: Make indexed documents a list of document objects.Arun Isaac
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.
2022-07-09Makefile: Run tests using a for loop.Arun Isaac
If guile is passed all test files at once, it only runs the first one. * Makefile (check): Run tests using a for loop.
2022-07-09tissue: Delay index-documents field.Arun Isaac
* 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.
2022-07-08tissue.scm: Remove html extension from web URIs.Arun Isaac
* tissue.scm (#:indexed-documents): Remove html extension from web URIs.
2022-07-08web: server: Serve html files even without the html extension.Arun Isaac
* tissue/web/server.scm (handler): Serve html files even if they don't have the html extension.
2022-07-08utils: Add string-remove-suffix utility.Arun Isaac
* tissue/utils.scm (string-remove-suffix): New public function.
2022-07-08issues: Support issue templates.Arun Isaac
* issues/issue-templates.gmi: New file.
2022-07-08issues: Add Gemini interface.Arun Isaac
* issues/gemini-interface.gmi: New file.
2022-07-08issue: Allow specifying tags with keyword and tag singulars.Arun Isaac
* tissue/issue.scm (file-details): Allow specifying tags with keyword and tag singulars.
2022-07-08issues: Search by date.Arun Isaac
* issues/search-by-date.gmi: New file.
2022-07-08issues: Add links to filter documents by type.Arun Isaac
* issues/add-links-to-filter-documents-by-type.gmi: New file.
2022-07-08issues: Request indexing commit messages.Arun Isaac
* issues/index-commit-messages.gmi: New file.
2022-07-08issues: Request GitHub-like milestones.Arun Isaac
* issues/github-like-milestones.gmi: New file.
2022-07-08issues: Request Emacs interface.Arun Isaac
* issues/emacs-interface.gmi: New file.
2022-07-07issues: Request internationalization.Arun Isaac
* issues/internationalization.gmi: New file.
2022-07-07issues: Request pagination of search results in the web UI.Arun Isaac
* issues/paginate-search-results.gmi: New file.
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.