-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathTODO.txt
More file actions
117 lines (100 loc) · 3.51 KB
/
TODO.txt
File metadata and controls
117 lines (100 loc) · 3.51 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
This file contains notes, todo items, and an incomplete record of features
implemented. It's just a scratch file and shouldn't be considered
authoritative.
TODO:
=====
- add option to disable cleaning steps?
- merge adjacent {} nodes?
mRNA, DNA are great -> {mRNA,} {DNA} are great
should be {mRNA, DNA} are great
- Pages that only contain symbols ?
- Check for volumes, numbers that are not INTs
- implement biblint extract in.bib listofids.aux
listofids.aux can be either:
a list of \citation{a,b,c,d,e} commands
or a list of a b c d entry keys
- write additional unit tests and have them acutally check the output
- handle #
- check for lone "{" inside quoted string
DONE:
=====
x check outputs messages to stdout instead of stderr
x Fix preamble string bug so it outputs {" ... "} instead of { }
x only strange-case handle the title and booktitle?
x remove whitespace at start and end of fields
x correctly read preamble
x handle @comment on input (deleted on output)
x allow () to deliminate entries
x check for duplicate key=value pairs
x handle moo\"{e}bar correctly -> {moo\"{e}bar}
x deal with et al.
- Find " that are not in {}
- Find titles that are entirely enclosed in {}
- Find all caps words that are not inside {} and strange caps words
(i.e. any word that isn't Xxxx or xxxx)
- remove empty fields
- recognize quoted ints
- parse author names
- handle @preamble
- handle integer IDENT
- write out the encountered errors
- include locations in errors
In Clean:
* when sorting, compare {} strings correctly
* when sorting, expand symbols
* add {} around " in fields
* Handle Word-Word-Word in IsStrangeCase
* Replace lone - in pages with --
* remove . from the end of titles
* back replace months
* Sorts entries by year
* Removes empty fields
* Removes non-blessed fields
* Removes {} around entire fields (trying to {} smaller sections}
* Converts {INT} -> INT
* Puts @preamble at the top
* Puts @string at the top (after @preamble)
* Remove all comments
* Normalize whitespace within fields
* Format all authors as von Last, First or von Last, Jr, First
* Use symbols whenever unambiguious
* Format the entries consistently, ordering fields consistently
* PAges that look like NUMBER - NUMBER -> NUMBER--NUMBER
* Pages A--B where A > B -> replace B with the expansion based on A
* lowercase words in Journal name
* Remove entries where onne is contained in another
LINT
* Check for malformed author names
* Check for unmatched $
* Lone - instead of --- in title?
* "et al" appearing in author lists
* Non-ascii characters anyplace
* Check for "years" that are not INTs
* Pages A--B where A > B
* Check for undefined symbols
* Check for duplicate symbol definitions
* Check for duplicate keys
* Check for missing required fields
* check for two symbols defining same thing
DUPS
* look for duplicate entries that have different keys?
* cluster by cleaned title
NOTES AND IDEAS FOR FUTURE:
===========================
IMPORT to.bib from.bib > combined.bib
if a field exists in from.key add it to to.key if it is not already in to.key
LIST
biblint list author
* list all the values for the given field, along with the pubs that have
that value
sort the values by "similar" values
* for authors "have that value" means "has that author"
* list all the authors and the pubs with them
REMOVETAG
* remove all tags of the given type
SORT
* by key, year, first author, last author, journal (any tag)
biblint sort -by [key|...]
GENKEYS
* generate keys from records using various patterns
biblint genkeys "{author1}:{year}"