Age | Commit message (Expand) | Author |
2023-01-23 | tissue.scm: Index the manual.•••* tissue.scm: Import (tissue skribilo).
(#:indexed-documents): Add manual.
| Arun Isaac |
2023-01-23 | dir-locals.el: Add Emacs directory local variables.•••* .dir-locals.el: New file.
| Arun Isaac |
2023-01-23 | skribilo: Add skribilo fragment document.•••* tissue/skribilo.scm: New file.
| Arun Isaac |
2023-01-23 | issue: Remove unused import.•••* tissue/issue.scm: Do not import (git).
| Arun Isaac |
2023-01-23 | file-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-23 | file-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-23 | file-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-23 | commit: 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-23 | search: 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-23 | web: 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-23 | search: 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-23 | guix.scm: Depend on pre-release guile-xapian.•••* guix.scm: Import guile-xapian with the guix: prefix.
(guile-xapian): New variable.
| Arun Isaac |
2023-01-23 | guix.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-23 | issues: 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-23 | web: 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-27 | document: Support symbol serialization and deserialization.•••* tissue/document.scm (object->scm, scm->object): Support symbols.
| Arun Isaac |
2022-12-27 | doc: Add identifiers to all chapters and sections.•••* doc/tissue.skb: Add identifiers to all chapters and sections.
| Arun Isaac |
2022-12-25 | git: 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-25 | bin: Replace define* with define.•••* bin/tissue (load-config): Define using define instead of define*.
| Arun Isaac |
2022-12-25 | web: 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-25 | web: 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-25 | tissue: 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-25 | tissue: 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-25 | web: 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-25 | web: static: Allow customization of engine used in export.•••* tissue/web/static.scm (gemtext-exporter, skribe-exporter): Accept
engine keyword argument.
| Arun Isaac |
2022-12-25 | web: 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-25 | web: 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-25 | web: themes: Add functional way to define methods.•••* tissue/web/themes.scm: Import (srfi srfi-26).
(add-methods): New function.
| Arun Isaac |
2022-12-25 | web: 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-25 | web: 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-24 | bin: 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-24 | web: 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-24 | bin: 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-24 | dev: Implement development web server.•••* tissue/web/dev.scm: New file.
| Arun Isaac |
2022-12-24 | server: 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-28 | web: server: Do not prepend / to URI path.•••* tissue/web/server.scm (handler): Do not prepend / to URI path.
| Arun Isaac |
2022-11-28 | web: 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-10 | tissue: 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-10 | doc: Add documentation.•••* doc/skribilo.scm, doc/tissue.skb: New files.
* tissue.scm (#:web-files): Add manual/dev/en/index.html.
| Arun Isaac |
2022-10-10 | tissue: 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-07 | tissue: 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-19 | guix.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-19 | guix.scm: Patch shebang in executable script.•••* guix.scm (tissue)[arguments]: Add patch-source-shebangs script.
| Arun Isaac |
2022-09-19 | guix.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-19 | tissue.scm: Add CSS.•••* website/style.css: New file.
* tissue.scm (#:web-files): Copy CSS to website.
(#:web-css): Use it.
| Arun Isaac |
2022-09-19 | tissue.scm: Copy IBM Plex fonts to built website.•••* tissue.scm (#:web-files): Copy IBM Plex fonts.
| Arun Isaac |
2022-09-19 | bin: 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-19 | bin: 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-19 | bin: Define &user-error-condition.•••* bin/tissue (&user-error-condition): New condition type.
| Arun Isaac |
2022-09-19 | bin: Separate development and deployment subcommands in listing.•••* bin/tissue (print-usage): Separate development and deployment
subcommands in listing.
| Arun Isaac |