aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-18Mark query argument of httpd/ as unused.Arun Isaac
* ennum.el (ennum-server-start): Mark query argument of httpd/ as unused.
2022-08-18Mark ennum-html-export-thumbnail desc argument as unused.Arun Isaac
* ennum-html.el (ennum-html-export-thumbnail): Mark desc argument as unused.
2022-08-18Do not shadow default-directory dynamic variable.Arun Isaac
* ennum-html.el (expand-file-name*): Rename default-directory argument to base-directory.
2022-08-18Create customization group.Arun Isaac
* ennum.el (ennum): New customization group. * ennum-image.el (ennum-image-convert-path, ennum-image-identify-path, ennum-image-jpegtran-path, ennum-image-optipng-path): Add to ennum customization group.
2022-08-18Treat author name as plain text.Arun Isaac
* ennum.el (ennum--read-post): Treat author name as plain text. Do not export it using org.
2022-08-17Replace first with seq-first.Arun Isaac
cl is deprecated. So we replace first from cl with seq-first from seq. * ennum.el: Do not require cl. (ennum--read-post, ennum-publish-index, ennum-publish-feed): Replace first with seq-first.
2022-08-17Do not pattern match link objects, use the org API.Arun Isaac
* ennum.el (ennum--read-post): Do not pattern match link objects. Use the org API instead.
2022-08-17Pass tongue argument to ennum-publish-index.Arun Isaac
Pass tongue argument to ennum-publish-index and ennum-publish-index-page instead of letting them discover it themselves. * ennum.el (ennum-publish): Pass tongue argument to ennum-publish-index. (ennum-publish-index): Accept tongue argument. Pass tongue argument to ennum-publish-index-page. (ennum-publish-index-page): Accept tongue argument.
2022-08-17Use posts-directory argument in ennum-posts.Arun Isaac
* ennum.el (ennum-posts): Use posts-directory argument instead of querying for it again using ennum-setting.
2022-08-17Move ennum-with-temporary-directory to top.Arun Isaac
* ennum.el (ennum-with-temporary-directory): Move to top.
2022-08-17Move ennum-with-current-directory to top.Arun Isaac
* ennum.el (ennum-with-current-directory): Move to top.
2022-08-17Move ennum-with-file-contents to top.Arun Isaac
* ennum.el (ennum-with-file-contents): Move to top.
2022-08-17Do not pass comparison function to map-elt.Arun Isaac
* ennum.el (ennum-export-post, ennum-publish-index-page, ennum-assoc-prepend): Do not pass comparison function to map-elt. * ennum-html.el (ennum-html-inner-template): Do not pass comparison function to map-elt.
2022-08-17Mark last-modified memoization argument as unused.Arun Isaac
The last-modified argument is only for invalidating memoized results of an older function call. Its value is not actually used. So, mark it as such to avoid a compiler warning. * ennum.el (ennum--file-hash, ennum--read-post): Mark last-modified memoization argument as unused.
2022-08-15Link to video poster in images directory, not the video directory.v0.1.0Arun Isaac
* ennum-html.el (ennum-html-link): Link to video poster in images directory, not the video directory.
2022-08-15Strip leading directory from other files.Arun Isaac
* ennum.el (ennum-publish): Strip leading directory from other files. (ennum-publish-generic): Prepend other files directory to find the source file.
2022-08-15Optionally return files in the current directory.Arun Isaac
* ennum.el (ennum-directory-files): If directory is not provided, assume it is the current directory.
2022-08-15Replace seq-do with dolist.Arun Isaac
* ennum.el (ennum--set-file-modes-recursively, ennum-store-item-union, ennum-publish-index-page, ennum--read-post): Replace seq-do with dolist.
2022-08-15Localize conditional in chmod call.Arun Isaac
* ennum.el (ennum--set-file-modes-recursively): Compute only the mode conditionally, not the whole chmod call.
2022-08-15Do not log video posters.Arun Isaac
* ennum-html.el (ennum-html-link): Do not log video posters.
2022-08-15Register video link type.Arun Isaac
* ennum-html.el: Register video link type. (ennum-html-follow-video): New function.
2022-08-15Expand ennum-copy docstring.Arun Isaac
* ennum.el (ennum-copy): Expand docstring.
2022-08-15Re-indent.Arun Isaac
* ennum.el (ennum--feed-entry): Re-indent.
2022-08-15Return only non-directory part of poster filename.Arun Isaac
* ennum.el (ennum-video-poster): Return only non-directory part of poster filename.
2022-08-15Track variables provided by certain features.Arun Isaac
We track the value of variables provided by certain features. This is so that we rebuild correctly when the user sets a configuration variable. * ennum.el: Require loadhist. (ennum-track-features, ennum-feature-hash): New variables. (ennum--feature-environment): New function. (ennum-exp): Include ennum-feature-hash in hash computation. (ennum-publish): Recompute ennum-feature-hash.
2022-08-15Do not double prepend directories to filenames.Arun Isaac
The return value of ennum-directory-files now includes the respective directories. There is no need to prepend the directory again. * ennum.el (ennum-posts, ennum-publish-generic): Do not prepend directory to filename.
2022-08-14Rewrite many to many grouping using functional setters.Arun Isaac
* ennum.el (ennum-assoc-delete, ennum-assoc-set, ennum-assoc-prepend): New functions. * ennum.el (ennum-many-to-many-group-by): Use ennum-assoc-append instead of mutating the result association list.
2020-08-03Include file name in hash computation.Arun Isaac
Prior to this, files of different name but same content would be indistinguishable and cause trouble. * ennum.el (ennum--file-hash): Include file name in hash computation.
2020-08-03Print better log messages.Arun Isaac
* ennum.el (ennum-intern, ennum-publish-feed, ennum-publish-image, ennum-copy): Print log messages. (ennum-eval): Do not print "skipping build" messages. It is too verbose.
2020-08-03Use output-html-file argument passed to ennum-export-post.Arun Isaac
Prior to this, the output-html-file was disregarded and recomputed unnecessarily. * ennum.el (ennum-export-post): Use output-html-file argument, instead of recomputing it.
2020-08-03Use closures instead of ennum-exp objects.Arun Isaac
The lexical environment of a closure can capture all inputs to an expression. Earlier we were capturing some of these inputs using the inputs slot of an ennum-exp object. Capturing dynamically scoped global variables is a different matter, and is not addressed by this commit. * ennum.el (ennum-exp): Delete type. (ennum--rewrite-inputs): Delete macro. (ennum-eval): Deal with closures not ennum-exp objects. (ennum-store-item-union, ennum-publish-post, ennum-publish-generic, ennum-publish-feed, ennum-publish-image, ennum-publish-copy): Pass inputs as lexically bound variables of a closure, rather than as ennum-exp inputs.
2020-08-03Disentangle index page generation expressions.Arun Isaac
* ennum.el (ennum-publish-index): Publish each page as a separate ennum expression. Make them separate functions to avoid closure capture. (ennum-publish-index-page, ennum-publish-index-home): New functions. (ennum-publish): Concatenate return value of ennum-publish-index.
2020-08-03Expose paths to external utilities.Arun Isaac
* ennum-image.el (ennum-image-convert-path, ennum-image-identify-path, ennum-image-jpegtran-path, ennum-image-optipng-path): New variables. (ennum-image-resize-image): Use ennum-image-convert-path. (ennum-image-optimize-image): Use ennum-image-jpegtran-path and ennum-image-optipng-path. (ennum-image-get-width): Use ennum-image-identify-path.
2020-08-03Replace ennum--expand-relative with ennum--file-join.Arun Isaac
* ennum.el (ennum--file-join): New function. (ennum--expand-relative): Delete function. (ennum-posts, ennum-publish-generic, ennum-publish-image, ennum-publish-link, ennum-publish): Replace ennum--expand-relative with ennum--file-join.
2020-08-02Pass post object in info.Arun Isaac
* ennum-html.el (ennum-html-inner-template): Use translations from post object. (ennum-html-find-link): New function. (ennum-html-link): Use post titles and video posters from post object. * ennum.el (ennum-export-post): Pass post object as :ennum-posts in info.
2020-08-02Pass post titles in info.Arun Isaac
* ennum-html.el (ennum-html-link): Handle post links as a special case. (ennum-html-export-post): Use post link description received as argument. When description is nil, do not attempt to read source files to find the post title. * ennum.el (ennum-export-post): Pass post titles as :ennum-post-titles in info.
2020-08-02Embed post link target title in post-link object.Arun Isaac
* ennum.el (ennum-post-set-links, ennum-post-link-set-target-title): New functions. (ennum-post-link): New type. (ennum--read-post): Create post-link object when applicable. (ennum-posts): Set target-title slot of post-link objects.
2020-08-02Create a functional setter for ennum-post-translations.Arun Isaac
* ennum.el (ennum-make-functional-setter): New macro. (ennum-post-set-translations): New function. (ennum-posts): Use ennum-post-set-translations.
2020-08-02Embed video poster in link object.Arun Isaac
* ennum.el (ennum-post): Remove video-posters slot. (ennum-video-link): New type. (ennum--read-post): Create video link when applicable. Do not set video-posters in post object. (ennum-publish-post, ennum-publish-link): Use ennum-video-link-poster.
2020-08-02Introduce ennum-link type.Arun Isaac
* ennum.el (ennum-link): New type. (ennum--read-post, ennum-publish-link): Use ennum-link type.
2020-08-02Deduplicate ennum-html export.Arun Isaac
* ennum.el (ennum-export-post): New function. (ennum-publish-post, ennum--feed-entry): Invoke ennum-export-post.
2020-08-01Embed list of translations into post object.Arun Isaac
* ennum.el (ennum-post): Add ennum-copy-post copier and translations slot. (ennum-posts): Set translations slot. (ennum-publish-post): Publish a single post, not a translation group of posts. (ennum-publish): Pass posts to ennum-publish-post one by one, without grouping. * ennum-html.el (ennum-html-inner-template): Use translations alist.
2020-08-01Prefix ennum-html symbols with ennum-html-.Arun Isaac
* ennum-html.el: Prefix all ennum-html symbols consistently with ennum-html-.
2020-07-31Switch from ennum-operation to ennum-exp.Arun Isaac
ennum-exp is a simple embedded domain specific language to express blog publishing in a more expression oriented form. * ennum.el (ennum-operation): Delete type. (ennum--do-operation): Delete function. (ennum-intern, ennum--hash, ennum-file-hash, ennum--file-hash, ennum--set-file-modes-recursively, ennum--rewrite-inputs, ennum-eval, ennum-store-item-union): New functions. (ennum-exp): New macro. (ennum-setting): Introduce :store setting. (ennum-publish-post, ennum-publish-generic, ennum-publish-index, ennum-publish-feed, ennum--feed-entry, ennum-publish-image, ennum-publish-copy, ennum-publish-link, ennum-publish): Switch from ennum-operation to ennum-exp.
2020-07-31Delete ennum-publish-static-file.Arun Isaac
ennum-publish-static-file is a duplicate of ennum-publish-copy. * ennum.el (ennum-publish-static-file): Delete function.
2020-07-31Use ennum-mkdir-p in ennum-copy.Arun Isaac
* ennum.el (ennum-copy): Use ennum-mkdir-p.
2020-07-31Specify post title explicitly in the link description.Arun Isaac
Index generation uses the html backend, and cannot access the special post link of the ennum-html backend. * ennum.el (ennum-publish-index): During index generation, specify post title explicitly in the link description.
2020-07-31Leave new temporary directory permissions unchanged.Arun Isaac
* ennum.el (ennum-with-temporary-directory): Leave new temporary directory permissions unchanged.
2020-07-31Introduce ennum-directory-files.Arun Isaac
ennum-directory-files is a more convenient around directory-files and directory-files-recursively. * ennum.el (ennum-directory-files): New function. (ennum-posts, ennum-video-poster, ennum-publish): Use ennum-directory-files. (ennum-publish-generic): Accept files that are not prefixed by other-files-directory.
2020-07-31Define ennum-blog variable.Arun Isaac
* ennum.el (ennum-blog): Define variable.