- (if (re-search-forward (concat "^" (pelican-field field ".+*")) nil t)
- (replace-match (pelican-field field value))
- (re-search-forward "^$")
- (replace-match (pelican-field field value)))))
+ (when (and (derived-mode-p 'rst-mode)
+ (re-search-forward "^#" nil t))
+ (forward-line 2))
+ (if (re-search-forward (concat "^" (pelican-mode-field field ".+*")) nil t)
+ (replace-match (pelican-mode-field field value))
+ (when value
+ (re-search-forward "^$")
+ (replace-match (pelican-mode-field field value))))))
+
+(defun pelican-mode-remove-field (field)
+ "Remove FIELD."
+ (pelican-mode-set-field field nil))
+
+(defun pelican-mode-set-title (title)
+ "Set the title to TITLE."
+ (interactive "sTitle: ")
+ (if (derived-mode-p 'markdown-mode)
+ (pelican-mode-set-field "title" title)
+ (save-excursion
+ (goto-char 0)
+ (let ((header (pelican-mode-rst-title title)))
+ (if (looking-at ".*\n#+\n+")
+ (replace-match header)
+ (insert header))))))