aboutsummaryrefslogtreecommitdiff
path: root/ennum.el
AgeCommit message (Collapse)Author
2022-08-21Actually use default :tag-directory setting.HEADmasterArun Isaac
* ennum.el (ennum-setting): Actually use default :tag-directory setting.
2022-08-19Rename :video-directory setting to :videos-directory.Arun Isaac
* ennum.el (ennum-setting, ennum-blog): Rename :video-directory setting to :videos-directory. (ennum-publish-link): Use :videos-directory setting instead of :video-directory. * ennum-html.el (ennum-html-link, ennum-html-follow-video): Use :videos-directory setting instead of :video-directory.
2022-08-18Introduce :required-metadata setting.Arun Isaac
* ennum.el (ennum-mandatory-metadata): Delete variable. (ennum-setting): Define the :required-metadata setting. (ennum-blog): Document the :required-metadata property. (ennum--read-post): Use the :required-metadata setting instead of ennum-mandatory-metadata.
2022-08-18Add trailing period to ennum-version docstring.Arun Isaac
* ennum.el (ennum-version): Add trailing period to docstring.
2022-08-18Make ennum-blog customizable.Arun Isaac
* ennum.el (ennum-blog): Define using defcustom instead of defvar.
2022-08-18Document ennum-blog variable.Arun Isaac
* ennum.el (ennum-blog): Add docstring.
2022-08-18Rename :thumbnail-image-width property to :image-thumbnail-width.Arun Isaac
* ennum.el (ennum-publish): Use :image-thumbnail-width instead of :thumbnail-image-width. (ennum-setting): Rename :thumbnail-image-width property to :image-thumbnail-width. * ennum-html.el (ennum-html-export-thumbnail): Use :image-thumbnail-width instead of :thumbnail-image-width.
2022-08-18Rename :default-image-width property to :image-width.Arun Isaac
* ennum.el (ennum-publish-link): Use :image-width instead of :default-image-width. (ennum-setting): Rename :default-image-width property to :image-width. * ennum-html.el (ennum-html-link): Use :image-width instead of :default-image-width.
2022-08-18Make ennum-version a constant instead of a variable.Arun Isaac
* ennum.el (ennum-version): Define as a constant instead of as a variable.
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-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-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-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-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-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.