summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2023-01-27Makefile: Add tarball generation rules.•••* Makefile (version, GIT, GPG, LZIP, distribute_files, dist_archive): New variables. (.PHONY): Add dist. (dist, $(dist_archive), %.asc): New targets. Arun Isaac
2023-01-27website: Link to search interface from home page.•••* website/index.skb (Documentation): Link to search interface. Arun Isaac
2023-01-27tissue.scm: Replace filter-map with map.•••No elements are being filtered. filter-map is unnecessary. * tissue.scm (#:web-files): Replace filter-map with map. Arun Isaac
2023-01-27doc: Add Tutorial.•••* doc/tissue.skb (Tutorial): New chapter. * tissue.scm (#:indexed-documents): Index it. Arun Isaac
2023-01-27doc: Add file function.•••* doc/skribilo.scm (file): New public function. Arun Isaac
2023-01-27issues: Resolve aliases when searching for people.•••* issues/resolve-aliases-when-searching-for-people.gmi: New file. Arun Isaac
2023-01-27issue: Stop exporting deleted function.•••* tissue/issue.scm: Do not export index-issue. Arun Isaac
2023-01-26issue: Index names of people as non-boolean terms.•••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. Arun Isaac
2023-01-26web: Clean up socket file when Unix sockets are used.•••* tissue/web/server.scm (start-web-server): Clean up socket file when Unix sockets are used. Arun Isaac
2023-01-26git: Infer changes by root commit correctly.•••* 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. Arun Isaac
2023-01-26web: Log complete request URI, not just the path.•••* tissue/web/server.scm (log-request): Log complete request URI, not just the path. Arun Isaac
2023-01-23bin: Add repository top level directory to load path.•••* bin/tissue (main, pull): Add top level directory of repository to load path. Arun Isaac
2023-01-23bin: Create xapian directory only when it does not exist.•••* bin/tissue (pull): Create xapian directory only when it does not exist. Arun Isaac
2023-01-23bin: Change to temporary clone before indexing.•••Indexing might refer to files on the filesystem. * bin/tissue (pull): Change to temporary clone of repository before indexing. Arun Isaac
2023-01-23web: Change to temporary clone before building website.•••* 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. Arun Isaac
2023-01-23website: Link to the manual.•••* website/index.skb (Documentation): New section. Arun Isaac
2023-01-23web: Allow files to shadow the search page.•••* tissue/web/dev.scm (handler): Allow files to shadow the search page. * tissue/web/server.scm (handler): Allow files to shadow the search page. Arun Isaac
2023-01-23Makefile: Bump copyright year.•••* Makefile: Add 2023 to Arun Isaac's copyright header. Arun Isaac
2023-01-23Makefile: Use install instead of cp and mkdir.•••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. Arun Isaac
2023-01-23tests: Remove tests for pairify.•••pairify was deprecated. * tests/tissue.scm (pairify): Delete variable. ("pairify"): Delete test. Arun Isaac
2023-01-23tissue.scm: Index the manual.•••* tissue.scm: Import (tissue skribilo). (#:indexed-documents): Add manual. Arun Isaac
2023-01-23dir-locals.el: Add Emacs directory local variables.•••* .dir-locals.el: New file. Arun Isaac
2023-01-23skribilo: Add skribilo fragment document.•••* tissue/skribilo.scm: New file. Arun Isaac
2023-01-23issue: Remove unused import.•••* tissue/issue.scm: Do not import (git). Arun Isaac
2023-01-23file-document: Export commits-affecting-file as a utility.•••* tissue/file-document.scm (commits-affecting-file): New public function. (read-gemtext-document): Use commits-affecting-file. Arun Isaac
2023-01-23file-document: Set document type of <file-document> to document.•••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. Arun Isaac
2023-01-23file-document: Set document type of <file-document> to document.•••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". Arun Isaac
2023-01-23commit: Refer to correct metasyntactic variable in docstring.•••* tissue/commit.scm (document-id-term, document-recency-date): Refer to metasyntactic variable COMMIT, not DOCUMENT. Arun Isaac
2023-01-23search: Do not use MSetIterator-mset-get.•••We already have the mset from enquire-mset. * tissue/search.scm (search-fold): Do not use MSetIterator-mset-get. Reuse mset from enquire-mset. Arun Isaac
2023-01-23web: Express gemtext-exporter in terms of skribe-exporter.•••The gemtext exporter is just a skribe exporter with different defaults. * tissue/web/static.scm (gemtext-exporter): Express in terms of skribe-exporter. Arun Isaac
2023-01-23search: Limit to 1000 search results by default.•••* 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. Arun Isaac
2023-01-23guix.scm: Depend on pre-release guile-xapian.•••* guix.scm: Import guile-xapian with the guix: prefix. (guile-xapian): New variable. Arun Isaac
2023-01-23guix.scm: Add font-ibm-plex as a development dependency.•••We use font-ibm-plex on the tissue website. * guix.scm: Import font-ibm-plex from (gnu packages fonts) with the guix: prefix. Import (guix utils). (font-ibm-plex): New variable. (package)[native-inputs]: Add font-ibm-plex. Arun Isaac
2023-01-23issues: Allow checkboxes without a space.•••* issues/allow-checkboxes-without-a-space.gmi: New file. * tissue/issue.scm (file-details): Add TODO note. Arun Isaac
2023-01-23web: Deprecate add-methods.•••Functionally setting generic functions (like add-methods does) doesn't work since methods can still refer to the old generic function. The future of generic functions in the theming system is in doubt. It must be rethought out carefully. * tissue/web/themes.scm (add-methods): Delete function. * tissue/web/themes/default.scm (default-theme): Replace add-methods! with add-method. Arun Isaac
2022-12-27document: Support symbol serialization and deserialization.•••* tissue/document.scm (object->scm, scm->object): Support symbols. Arun Isaac
2022-12-27doc: Add identifiers to all chapters and sections.•••* doc/tissue.skb: Add identifiers to all chapters and sections. Arun Isaac
2022-12-25git: Find git top level correctly even in bare repositories.•••* tissue/git.scm (git-top-level): Find git top level correctly even in bare repositories. Arun Isaac
2022-12-25bin: Replace define* with define.•••* bin/tissue (load-config): Define using define instead of define*. Arun Isaac
2022-12-25web: static: Build website from within temporary clone of repo.•••The build process may run code that expects files to be on the filesystem. Not all of this file accessing code is within tissue's control. Think arbitrary code in skribilo documents. So, we cannot always work around this by pointing file accesses into a bare git repository. * tissue/web/static.scm: Import (git). (build-website): Move into temporary clone of git repository before building files. (exporter): Use call-with-input-file instead of call-with-file-in-git. Arun Isaac
2022-12-25web: static: Deprecate with-current-directory.•••with-current-directory is the exact same as call-with-current-directory from (tissue utils). * tissue/web/static.scm (with-current-directory): Delete function. (build-website): Replace with-current-directory with call-with-current-directory. Arun Isaac
2022-12-25tissue: Deprecate #:project configuration parameter.•••The project name is not used anywhere now. If it is required, it should be passed through the lexical context of closures in the tissue configuration object. * tissue/tissue.scm (<tissue-configuration>)[project]: Delete field. (tissue-configuration-project): Delete function. (tissue-configuration): Remove project argument. * tissue.scm (tissue-configuration)[#:project]: Delete parameter. * tissue/web/static.scm (%project-name): Delete parameter. * bin/tissue (pull): Do not parameterize %project-name. Arun Isaac
2022-12-25tissue: Deprecate #:web-css configuration parameter.•••CSS is now specified exclusively through the lexical context of closures in the tissue configuration object. * tissue.scm: Use (tissue web themes default). (%css, %engine): New variables. (tissue-configuration)[#:web-css]: Delete parameter. [#:web-search-renderer]: Pass %css to default theme. [#:web-files]: Pass %engine to gemtext-exporter and skribe-exporter. * tissue/tissue.scm (<tissue-configuration>)[web-css]: Delete field. (tissue-configuration-web-css): Delete function. (tissue-configuration): Remove web-css argument. Arun Isaac
2022-12-25web: static: Introduce functional html engine customizer.•••* tissue/web/static.scm (engine-custom-set): New function. (html-engine): New public function. (gemtext-exporter, skribe-exporter): Use html-engine in default value of engine. Arun Isaac
2022-12-25web: static: Allow customization of engine used in export.•••* tissue/web/static.scm (gemtext-exporter, skribe-exporter): Accept engine keyword argument. Arun Isaac
2022-12-25web: static: Accept reader as a keyword argument.•••* tissue/web/static.scm (gemtext-exporter, skribe-exporter): Accept reader as a keyword argument, instead of as an optional argument. Arun Isaac
2022-12-25web: Do not pass project configuration to theme.•••Parameters from the project configuration may be needed by the theme. But, these parameters should not passed as explicit parameters to the generic function of the theme. Instead, they should be passed implicitly through the lexical context of the generic methods. * tissue/web/server.scm (search-handler): Do not pass project to search renderer. * tissue/web/themes/default.scm: Do not import (tissue tissue). (default-theme): New public function. (make-head-renderer): New function. (render-sxml): Make private. Remove project parameter from all generic methods. * tissue/tissue.scm (tissue-configuration): Set default value of web-search-renderer to (default-theme) instead of render-sxml. Arun Isaac
2022-12-25web: themes: Add functional way to define methods.•••* tissue/web/themes.scm: Import (srfi srfi-26). (add-methods): New function. Arun Isaac
2022-12-25web: dev: Accept thunk to read project configuration.•••To the development server, pass a thunk to read project configuration instead of the project configuration itself. This allows us to hack on the project's tissue.scm without having to restart the development server to see changes. * bin/tissue (tissue-web-dev): Pass thunk to read project configuration instead of the project configuration itself. * tissue/web/dev.scm (handler, start-dev-web-server): Accept thunk to read project configuration instead of the project configuration itself. Arun Isaac
2022-12-25web: Implement themes for the search page.•••We factor out all display related code to a theming module, and support powerful user customization of the theme thanks to generic functions. * tissue/commit.scm (document->sxml): Move to (tissue web themes default). * tissue/document.scm (document->sxml): Move to (tissue web themes default). * tissue/file-document.scm (document->sxml): Move to (tissue web themes default). * tissue/issue.scm (sanitize-string, document->sxml): Move to (tissue web themes default). * tissue/tissue.scm: Import (tissue web themes default). (<tissue-configuration>)[web-search-renderer]: New field. (tissue-configuration-web-search-renderer): New function. (tissue-configuration): Accept web-search-renderer argument. * tissue/web/server.scm: Import (oop goops) and (tissue web themes). Do not import (tissue document). (%css, make-search-page, search-handler): Move to (tissue web themes default). * tissue/web/themes.scm, tissue/web/themes/default.scm: New files. * Makefile (sources): Add $(top_level_module_dir)/web/themes/*.scm. Arun Isaac