summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
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
2022-12-24bin: Pass along entire project configuration object to servers.•••Themes should be free to access the entirety of the project configuration. It is impossible to predict which parts of the project configuration they will need. * bin/tissue (tissue-web, tissue-web-dev): Pass entire configuration object to start-web-server and start-dev-web-server respectively. * tissue/web/dev.scm: Import (tissue tissue). (handler, start-dev-web-server): Accept entire configuration object. * tissue/web/server.scm: Import (tissue tissue). (search-handler, start-web-server): Accept entire configuration object. Arun Isaac
2022-12-24web: Move query string utilities.•••* tissue/web/server.scm (query-parameters, query-string): Move to ... * tissue/utils.scm: ... here. Import (ice-9 match) and (web uri). Arun Isaac
2022-12-24bin: Expose new development web server.•••* bin/tissue: Import (tissue web dev). (tissue-web-dev): Run the new development web server. (main): Remove web-build command. (print-usage): Delist deprecated web-build command. Update synopsis of web-dev command. (tissue-web-build): Delete function. Arun Isaac
2022-12-24dev: Implement development web server.•••* tissue/web/dev.scm: New file. Arun Isaac
2022-12-24server: Factor out reusable parts into separate functions.•••The newly factored out functions will be used in the upcoming development web server. * tissue/web/server.scm (handler): Factor out reusable parts into ... (log-request, mime-type-for-extension, 404-response, search-handler, try-paths): ... new functions. Arun Isaac
2022-11-28web: server: Do not prepend / to URI path.•••* tissue/web/server.scm (handler): Do not prepend / to URI path. Arun Isaac
2022-11-28web: server: Serve path/index.html if path ends in /.•••* tissue/web/server.scm (handler): Serve path/index.html if path ends in /. Arun Isaac
2022-10-10tissue: Document #:indexed-documents as a list of <document> objects.•••* tissue/tissue.scm (tissue-configuration): Document #:indexed-documents as a list of <document> objects, not a list of <indexed-document> objects. Arun Isaac
2022-10-10doc: Add documentation.•••* doc/skribilo.scm, doc/tissue.skb: New files. * tissue.scm (#:web-files): Add manual/dev/en/index.html. Arun Isaac
2022-10-10tissue: Introduce define-lazy, an abstraction for lazy functions.•••* tissue/tissue.scm (define-lazy): New macro. (tissue-configuration): Define using define-lazy. (pairify): Delete function. (<tissue-configuration>[tissue-configuration-project, tissue-configuration-aliases, tissue-configuration-web-css]: Force values in getters. Arun Isaac