Age | Commit message (Expand) | Author |
2023-01-27 | Makefile: 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-27 | website: Link to search interface from home page.•••* website/index.skb (Documentation): Link to search interface.
| Arun Isaac |
2023-01-27 | tissue.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-27 | doc: Add Tutorial.•••* doc/tissue.skb (Tutorial): New chapter.
* tissue.scm (#:indexed-documents): Index it.
| Arun Isaac |
2023-01-27 | doc: Add file function.•••* doc/skribilo.scm (file): New public function.
| Arun Isaac |
2023-01-27 | issues: Resolve aliases when searching for people.•••* issues/resolve-aliases-when-searching-for-people.gmi: New file.
| Arun Isaac |
2023-01-27 | issue: Stop exporting deleted function.•••* tissue/issue.scm: Do not export index-issue.
| Arun Isaac |
2023-01-26 | issue: 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-26 | web: 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-26 | git: 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-26 | web: 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-23 | bin: 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-23 | bin: 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-23 | bin: 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-23 | web: 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-23 | website: Link to the manual.•••* website/index.skb (Documentation): New section.
| Arun Isaac |
2023-01-23 | web: 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-23 | Makefile: Bump copyright year.•••* Makefile: Add 2023 to Arun Isaac's copyright header.
| Arun Isaac |
2023-01-23 | Makefile: 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-23 | tests: Remove tests for pairify.•••pairify was deprecated.
* tests/tissue.scm (pairify): Delete variable.
("pairify"): Delete test.
| Arun Isaac |
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 |