blob: cf2c6f976f2c39168302363e3ee42de19417a506 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
;; Configurable save directory, default to current path
(defcustom save-directory "."
"Directory where backup files are saved."
:type 'directory
:group 'TODO)
(defun buffers ()
"TODO"
(nth 2
(first
(w3m-load-list w3m-session-file))))
(defun my-w3m-session-backup ()
"TODO"
(mapcar
(lambda (buffer)
(cons
;; URL
(first buffer)
;; Page title
(last buffer)))
(buffers)))
;; (first (nth 2
;; (first
;; (w3m-load-list w3m-session-file))))
(my-w3m-session-backup)
;; Write to file
;; https://stackoverflow.com/questions/2321904/elisp-how-to-save-data-in-a-file#2322164
;; Format some YAML text to write to the file
;; Configurable dynamic filename based on date-time
(defun yml-escape (str)
"YAML escape single quotes by doubling them."
(replace-regexp-in-string
(regexp-quote "'")
"''"
str
'fixedcase
'literal))
(defun save-backup ()
"TODO"
(with-temp-file
(concat
(file-name-as-directory save-directory)
(filename))
(insert
(string-join
(mapcar
(lambda (page)
(format "- page_title: '%s'
url: '%s'"
(yml-escape (first (last page)))
(first page)))
(my-w3m-session-backup))
"\n"))))
(defun filename ()
"Generates a default filename using the current date & time."
(format "w3m-tabs-%s.yml"
(format-time-string "%Y%m%d-%Hh%Mm%S")))
(save-backup)
;; Make filename customisable
|