{"action":"created","issue":{"url":"https://api.github.com/repos/JabRef/jabref/issues/920","repository_url":"https://api.github.com/repos/JabRef/jabref","labels_url":"https://api.github.com/repos/JabRef/jabref/issues/920/labels{/name}","comments_url":"https://api.github.com/repos/JabRef/jabref/issues/920/comments","events_url":"https://api.github.com/repos/JabRef/jabref/issues/920/events","html_url":"https://github.com/JabRef/jabref/issues/920","id":139260421,"number":920,"title":"Table of formatters","user":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JabRef/jabref/labels/enhancement","name":"enhancement","color":"6AC46A"}],"state":"open","locked":false,"assignee":{"login":"tobiasdiez","id":5037600,"avatar_url":"https://avatars.githubusercontent.com/u/5037600?v=3","gravatar_id":"","url":"https://api.github.com/users/tobiasdiez","html_url":"https://github.com/tobiasdiez","followers_url":"https://api.github.com/users/tobiasdiez/followers","following_url":"https://api.github.com/users/tobiasdiez/following{/other_user}","gists_url":"https://api.github.com/users/tobiasdiez/gists{/gist_id}","starred_url":"https://api.github.com/users/tobiasdiez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobiasdiez/subscriptions","organizations_url":"https://api.github.com/users/tobiasdiez/orgs","repos_url":"https://api.github.com/users/tobiasdiez/repos","events_url":"https://api.github.com/users/tobiasdiez/events{/privacy}","received_events_url":"https://api.github.com/users/tobiasdiez/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/JabRef/jabref/milestones/6","html_url":"https://github.com/JabRef/jabref/milestones/v3.3","labels_url":"https://api.github.com/repos/JabRef/jabref/milestones/6/labels","id":1491548,"number":6,"title":"v3.3","description":"","creator":{"login":"koppor","id":1366654,"avatar_url":"https://avatars.githubusercontent.com/u/1366654?v=3","gravatar_id":"","url":"https://api.github.com/users/koppor","html_url":"https://github.com/koppor","followers_url":"https://api.github.com/users/koppor/followers","following_url":"https://api.github.com/users/koppor/following{/other_user}","gists_url":"https://api.github.com/users/koppor/gists{/gist_id}","starred_url":"https://api.github.com/users/koppor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koppor/subscriptions","organizations_url":"https://api.github.com/users/koppor/orgs","repos_url":"https://api.github.com/users/koppor/repos","events_url":"https://api.github.com/users/koppor/events{/privacy}","received_events_url":"https://api.github.com/users/koppor/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":22,"state":"open","created_at":"2016-01-08T14:44:29Z","updated_at":"2016-03-11T13:26:44Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2016-03-08T12:02:10Z","updated_at":"2016-03-12T17:42:42Z","closed_at":null,"body":"This issue summarizes all the available formatters.\r\nThe aim is to improve their names and descriptions.\r\nI think the most practicable way is to directly edit this post with the new proposed version.\r\n\r\nClass Name | Key | Name | Description\r\n------------ | -------------| -------------| -------------\r\nAuthorsFormatter | AuthorsFormatter | BibTex authors format | Normalizes lists of persons in %s to the BibTeX standard\r\nUpperEachFirst CaseChanger |  UpperEachFirst CaseChanger | Upper Each First | Converts the first character of each word in %s to upper case (and all others to lower case), but does not change words starting with \"{\".\r\nUpperCaseChanger | UpperCaseChanger | UPPER | Converts all characters in %s to upper case, but does not change words starting with \"{\"\r\nMonthFormatter | MonthFormatter | Month | Normalizes content of %s to the format #mon#.\r\nLatexFormatter | LatexFormatter | Latex | Cleans latex code in %s.\r\nUpperFirst CaseChanger | UpperFirst CaseChanger | Upper first | Converts the first character of the first word in %s to upper case (and the remaining characters of the first word to lower case), but does not change anything if word starts with \"{\".\r\nAuthorsMinifier | MinifyAuthors | Minify authors | Replaces three or more authors with \"and others\".\r\nDateFormatter | DateFormatter | Date | Normalizes dates in %s to the BibLaTeX standard yyyy-mm-dd or yyyy-mm.\r\nTitleCaseChanger | TitleCaseChanger | Title | Converts all words in %s to upper case, but converts articles, prepositions, and conjunctions to lower case.\r\nCaseKeeper | CaseKeeper | CaseKeeper | Adds {} brackets around acronyms, month names and countries in %s to preserve their case.\r\nPageNumbers Formatter | PageNumbers Formatter | Page numbers | Ensures that pages numbers in %s are of the form num--num.\r\nLowerCaseChanger | LowerCaseChanger | lower | Converts all characters in %s to lower case, but does not change words starting with \"{\"\r\nTrimFormatter | TrimFormatter | Trim whitespace | Removes any leading and trailing whitespace in %s.\r\nHTMLToLatex Formatter | HtmlConverter **HtmlToLatex** | HTMLConverter **HTML to LaTeX** | Changes HTML expressions in %s to their LaTeX equivalent.\r\nSuperscriptFormatter | SuperscriptFormatter | Superscripts | Transforms ordinal numbers in %s into LaTex superscripts.\r\nUnitFormatter | UnitFormatter | UnitFormatter | Converts units in %s to LaTeX code.\r\nRemoveBraces Formatter | RemoveBraces Formatter **RemoveBraces** | Remove enclosing double braces | Removes all matching braces around the contents of %s.\r\nUnicodeToLatex Formatter | UnicodeConverter **UnicodeToLatex** | UnicodeConverter **Unicode to LaTeX** | Converts unicode characters in %s to their LaTeX equivalent.\r\nEraseFormatter | EraseFormatter **Erase** | Erase all **Erase field** | Completely erases %s.\r\n\r\nRemarks:\r\n- The key is used for the serialization.\r\n- The name should be used for example in the drop down box. Note: some names are also used in the context menu which appears on right-clicking a text field in entry edit. Which explains the shorter and somewhat cryptic names for example the UpperCaseChanger.\r\n- The description is shown as a tooltip.\r\n- (I added some spacing in the classname and key so that the columns are not super-wide)"},"comment":{"url":"https://api.github.com/repos/JabRef/jabref/issues/comments/195779352","html_url":"https://github.com/JabRef/jabref/issues/920#issuecomment-195779352","issue_url":"https://api.github.com/repos/JabRef/jabref/issues/920","id":195779352,"user":{"login":"koppor","id":1366654,"avatar_url":"https://avatars.githubusercontent.com/u/1366654?v=3","gravatar_id":"","url":"https://api.github.com/users/koppor","html_url":"https://github.com/koppor","followers_url":"https://api.github.com/users/koppor/followers","following_url":"https://api.github.com/users/koppor/following{/other_user}","gists_url":"https://api.github.com/users/koppor/gists{/gist_id}","starred_url":"https://api.github.com/users/koppor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/koppor/subscriptions","organizations_url":"https://api.github.com/users/koppor/orgs","repos_url":"https://api.github.com/users/koppor/repos","events_url":"https://api.github.com/users/koppor/events{/privacy}","received_events_url":"https://api.github.com/users/koppor/received_events","type":"User","site_admin":false},"created_at":"2016-03-12T17:42:42Z","updated_at":"2016-03-12T17:42:42Z","body":"My following list is based on Simon's. Additionally, I also did some sorting and also did add classnames\r\n\r\nI like the CamelCase key names, therefore I put CamelCase there.\r\n\r\nRegarding the name: I think, it reads strange, if we have a name with two words and the first word is sometimes capitalized and sometimes not. Therefore, I write everything in lower case.\r\n\r\n\r\nQuestions:\r\n\r\nRegarding FreezeTerms and UnfreezeTerms: This are no opposite formatters. Therefore, I included \"UnfreezeWords\". Maybe \"UnfreezeAllWords\" would be better?\r\n\r\nI really vote for keeping AuthorsFormatter as it is a different thing than AuthorList and is more powerful. See #950.\r\n\r\nUpperCaseChanger: We can convert them to a LayoutFormatter.\r\n\r\nTimFormatter: +1 for always trimming during writing an entry.\r\n\r\n## Authors related\r\n- [ ] AuthorsFormatter\r\n  - classname: NormalizeAuthorsFormatter\r\n  - key: NormalizeAuthors\r\n  - name: normalize authors\r\n  - description: Normalizes lists of persons in %s to the BibTeX standard. \r\n  - example: \"Albert Einstein and Alan Turing\" to \"Einstein, Albert and Turing, Alan\"\r\n- [ ] AuthorsMinifier\r\n  - key: minify_authors\r\n  - classname: MinifyAuthorsFormatter\r\n  - example: \"Stefan Kolb and Simon Harrer and Guido Wirtz\" to \"Stefan Kolb and others\"\r\n\r\n## Date related\r\n- [ ] MonthFormatter\r\n  - classname: NormalizeMonthFormatter\r\n  - key:  NormalizeMonth\r\n  - name: normalize month\r\n  - example: \"December\" to \"#dec#\"\r\n- [ ] DateFormatter\r\n  - classname: NormalizeDateFormatter\r\n  - key: NormalizeDate\r\n  - name: normalize date\r\n  - example: \"1.1.16\" to \"2016-01-01\"\r\n\r\n## Page related\r\n- [ ] PageNumbersFormatter\r\n  - key: NormalizePages\r\n  - classname: NormalizePagesFormatter\r\n  - name: normalize pages\r\n  - example: \"1 - 2\" to \"1--2\"\r\n\r\n## Casing related\r\n- [ ] TitleCaseChanger\r\n  - key: titelize\r\n  - name: Titelize\r\n  - description: Capitalize all words in %s, but converts articles, prepositions, and conjunctions to lower case.\r\n  - example: \"{BPMN} conformance In open source ENgines\" to \"{BPMN} Conformance in Open Source Engines\"\r\n- [ ] UpperEachFirstCaseChanger\r\n  - classname: CapitalizeFormatter\r\n  - key: Capitalize\r\n  - name: capitalize\r\n  - example: \"I have {a} DREAM\" to \"I Have {a} Dream\"\r\n- [ ] UpperCaseChanger\r\n  - classname: UpcaseFormatter\r\n  - key: upcase\r\n  - name: to upper case\r\n  - example: \"Google {Chrome}\" to \"GOOGLE {Chrome}\"\r\n- [ ] UpperFirstCaseChanger\r\n  - classname: CapitalizeFirstDowncaseOthersFormatter\r\n  - key: CapitalizeFirstDowncaseOthers\r\n  - name: capitalize first, downcase others\r\n  - example: \"i have {Aa} DREAM\" to \"I have {Aa} dream\"\r\n- [ ] LowerCaseChanger\r\n  - classname: DowncaseFormatter\r\n  - key: Downcase\r\n  - name: to down case\r\n  - example: \"Google {Chrome}\" to \"google {Chrome}\"\r\n\r\n- [ ] CaseKeeper\r\n  - class: FreezeTermsFormatter\r\n  - key: FreezeTerms\r\n  - name: freeze terms\r\n  - example: \"In CDMA\" to \"In {CDMA}\"\r\n- [ ] RemoveBracesFormatter\r\n  - key: UnfreezeWords\r\n  - name: unfreeze words\r\n  - example: \"In {CDMA}\" to \"In CDMA\"\r\n\r\n## LaTeX conversion\r\n- [ ] LatexFormatter\r\n  - classname: RemoveLatexFormatter\r\n  - key: RemoveLatex\r\n  - name: remove LaTeX\r\n  - desc: removes all latex constructs and code in %s.\r\n  - example: \"\\textbf{asdf}\" to \"asdf\"\r\n- [ ] HTMLToLatexFormatter\r\n  - key: HTMLToLaTeX\r\n  - name: HTML to LaTeX\r\n  - classname: HtmlToLatexFormatter\r\n  - example: \"<strong>asdf</strong>\" to \"\\textbf{asdf}\"\r\n  - usage?\r\n- [ ] UnicodeToLatexFormatter\r\n  - key: unicode_to_latex\r\n  - name: Unicode to LaTeX\r\n  - classname: UnicodeToLatexFormatter\r\n  - example: \"Mönch\" to \"M\\\"{o}nch\"\r\n- [ ] SuperscriptFormatter\r\n  - key: OrdinalsToLatex\r\n  - classname: OrdinalsToLatexFormatter\r\n  - name: ordinals to LaTeX\r\n  - example: \"11th\" to \"11\\textsuperscript{th}\"\r\n- [ ] UnitFormatter\r\n  - key: UnitsToLatex\r\n  - classname: UnitsToLatexFormatter\r\n  - name: Units to LaTeX\r\n  - Add hard spaces, non-breaking hyphen, and freezing to units\r\n  - example: \"1 Hz\" to \"1~{Hz}\"\r\n\r\n## Radical formatters\r\n- [ ] TrimFormatter\r\n  - key: trim\r\n  - maybe remove this? to be discussed in devcall?\r\n- [ ] EraseFormatter\r\n  - key: clear\r\n  - name: Clear\r\n  - classname: ClearFormatter\r\n  - example: \"Anything\" to \"\"\r\n"}}