summaryrefslogtreecommitdiff
path: root/tissue/tissue.scm
AgeCommit message (Collapse)Author
2022-12-25tissue: Deprecate #:project configuration parameter.Arun Isaac
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.
2022-12-25tissue: Deprecate #:web-css configuration parameter.Arun Isaac
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.
2022-12-25web: Do not pass project configuration to theme.Arun Isaac
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.
2022-12-25web: Implement themes for the search page.Arun Isaac
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.
2022-10-10tissue: Document #:indexed-documents as a list of <document> objects.Arun Isaac
* tissue/tissue.scm (tissue-configuration): Document #:indexed-documents as a list of <document> objects, not a list of <indexed-document> objects.
2022-10-10doc: Add documentation.Arun Isaac
* doc/skribilo.scm, doc/tissue.skb: New files. * tissue.scm (#:web-files): Add manual/dev/en/index.html.
2022-10-10tissue: Introduce define-lazy, an abstraction for lazy functions.Arun Isaac
* 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.
2022-10-07tissue: Markup docstrings in texinfo syntax.Arun Isaac
* 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.
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-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-06-27tissue: Generalize issue-files to indexed-documents.Arun Isaac
* tissue/tissue.scm (<tissue-configuration>)[issue-files]: Delete field. [indexed-documents]: New field. * tissue/tissue.scm (tissue-configuration): Remove issue-files argument. Add indexed-documents argument. * bin/tissue: Import (tissue document) with doc: prefix. (print-document, alist->document, document->text, index-document): New functions. (tissue-search): Display search results for generalized documents using print-document, alist->document and document->text. (main): Index generalized documents using index-document.
2022-06-23git: Pass repository argument to git-tracked-files.Arun Isaac
Accepting a repository argument makes git-tracked-files a better stand-alone utility. * tissue/git.scm (git-tracked-files): Accept repository argument. * tissue/tissue.scm (gemtext-files-in-directory): Pass repository argument to git-tracked-files.
2022-04-14tissue: Add #:issue-files configuration parameter.Arun Isaac
* tissue/tissue.scm: Import (tissue git). (<tissue-configuration>)[issue-files]: New field. (gemtext-files-in-directory): New function. (tissue-configuration): Add #:issue-files keyword argument. * tissue/issue.scm (%issue-files): New public parameter. (issues): Read issues only from files in %issue-files. * bin/tissue (main): Parameterize %issue-files.
2022-04-06web: Introduce <file> objects for web export.Arun Isaac
With <file> objects specifying the files to export to the web, the user has ultimate flexibility in their choice of what to export and how to export. * bin/tissue (tissue-web): Parameterize %project-name and %tags-path. Use new signature of build-website. * tissue/tissue.scm: Import (srfi srfi-1) and (srfi srfi-71). (<tissue-configuration>)[web-files]: New field. (tissue-configuration-web-files): New public function. (tissue-configuration): New macro. * tissue/web.scm: Import (srfi srfi-9). (%project-name): New public parameter. (<file>): New type. (build-issue-listing): Delete function. (copier, gemtext-reader, gemtext-exporter, skribe-exporter, tag-issue-lister, tag-pages): New public functions. (exporter, with-current-directory): New functions. (build-website): Simply write <file> objects to files. (replace-extension): Export.
2022-03-18tissue: Introduce aliases in configuration.Arun Isaac
* tissue/tissue.scm (<tissue-configuration>)[aliases]: New field. * tissue/tissue.scm (tissue-configuration): Accept aliases as an argument.
2022-03-15tissue: Introduce declarative configuration.Arun Isaac
The <tissue-configuration> record will provide a declarative configuration interface. * tissue/tissue.scm: New file.