summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
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
2022-10-07tissue: Markup docstrings in texinfo syntax.•••* tissue/document.scm (slot-set): Markup docstring in texinfo syntax. * tissue/file-document.scm (read-gemtext-document): Markup docstring in texinfo syntax. * tissue/git.scm (git-tracked-files): Markup docstring in texinfo syntax. * tissue/issue.scm (read-gemtext-issue): Markup docstring in texinfo syntax. * tissue/tissue.scm (gemtext-files-in-directory): Markup docstring in texinfo syntax. * tissue/web/static.scm (exporter, copier, gemtext-exporter, skribe-exporter): Markup docstrings in texinfo syntax. Arun Isaac
2022-09-19guix.scm: Add dependencies.•••* guix.scm: Import autoconf and automake from (gnu packages autotools). Import gnu-gettext from (gnu packages gettext). Import guile-3.0 and guile-git from (gnu packages guile). Import guile-filesystem and guile-xapian from (gnu packages guile-xyz). Import (gnu packages skribilo) with a guix: prefix. (skribilo-latest): New variable. (tissue)[inputs]: Add guile-3.0, guile-filesystem, guile-git and guile-xapian. [propagated-inputs]: Add skribilo-latest. Arun Isaac
2022-09-19guix.scm: Patch shebang in executable script.•••* guix.scm (tissue)[arguments]: Add patch-source-shebangs script. Arun Isaac
2022-09-19guix.scm: Wrap tissue executable.•••* guix.scm (tissue)[arguments]: Import target-guile-effective-version from (guix build guile-build-system). Add wrap phase. Arun Isaac
2022-09-19tissue.scm: Add CSS.•••* website/style.css: New file. * tissue.scm (#:web-files): Copy CSS to website. (#:web-css): Use it. Arun Isaac
2022-09-19tissue.scm: Copy IBM Plex fonts to built website.•••* tissue.scm (#:web-files): Copy IBM Plex fonts. Arun Isaac
2022-09-19bin: Print error message and exit on user-error conditions.•••This allows us to report fatal user errors and exit. * bin/tissue (main): Print error message and exit on user-error conditions. Arun Isaac
2022-09-19bin: Error out if web-dev subcommand is not given a website directory.•••* bin/tissue (tissue-web-dev): Raise user error if not given a website-directory command-line argument. Arun Isaac
2022-09-19bin: Define &user-error-condition.•••* bin/tissue (&user-error-condition): New condition type. Arun Isaac
2022-09-19bin: Separate development and deployment subcommands in listing.•••* bin/tissue (print-usage): Separate development and deployment subcommands in listing. Arun Isaac