- "Generate a Pelican article/page slug for the current buffer."
- (if-let ((pelican-mode-base (pelican-mode-find-root))
- (file-name (file-name-sans-extension buffer-file-name)))
- (let* ((relative (file-relative-name file-name pelican-mode-base))
- (components (cdr (split-string relative "/")))
- (components (if (string= "pages" (car components))
- (cdr components) components)))
- (mapconcat 'identity components "/"))
- (when-let (file-name (file-name-sans-extension buffer-file-name))
- (file-name-base file-name))))
+ "Generate a Pelican slug for the current buffer."
+ (file-name-sans-extension
+ (replace-regexp-in-string
+ "^[^/]+/\\(?:pages/\\)?" ""
+ (file-relative-name
+ (abbreviate-file-name (or (buffer-file-name) (buffer-name)))
+ (pelican-mode-find-root)))))