T X created FREEMARKER-97:
-----------------------------
Summary: Header capitalization using standard styles
Key: FREEMARKER-97
URL: https://issues.apache.org/jira/browse/FREEMARKER-97
Project: Apache Freemarker
Issue Type: Bug
Components: engine
Affects Versions: 2.3.28
Reporter: T X
FreeMarker offers a couple of simple algorithms for changing the case of titles:
*
[https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_cap_firs|https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_cap_first]
*
[https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_capitalizet|https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_cap_first]
Neither of these capitalize the text in ways that subscribe to various manuals
of style:
* [Chicago Manual of
Style|https://en.wikipedia.org/wiki/The_Chicago_Manual_of_Style]
* [Associated Press|https://en.wikipedia.org/wiki/AP_Stylebook]
* [MLA Style Manual|https://en.wikipedia.org/wiki/MLA_Style_Manual]
* [APA Style|https://en.wikipedia.org/wiki/APA_style]
Here are some test texts:
* On iPhone the Transcript Extends Outside of Screen Frame
* PEAR And GNA Report Performance
* BCMailPlusFTPClient Sends Document without Document ID
* JWebUnit: Non-PEN Orders main.xhtml Meta Refresh Tag Issue
These are correct as written and must not be adjusted by an algorithm that
changes the text title. There are a couple of web sites that produce the
expected titles (note that the second site capitalizes the word "without,"
which implies the algorithm does not use Chicago conventions):
* [https://titlecaseconverter.com/]
* [http://individed.com/code/to-title-case/]
There are a variety of implementations that perform such a feat:
||Language||Link||
|JavaScript|[https://github.com/gouch/to-title-case/blob/master/to-title-case.js]|
|Perl|[https://gist.github.com/gruber/9f9e8650d68b13ce4d78]|
|PHP|[https://gist.github.com/HipsterJazzbo/2532c93a18db7451b0cec529c95b53c4]|
These implementations do not require a whitelist. (So "iPhone" and "ClassName"
will not be corrected.) Apache Commons' {{WordUtils}} class does not implement
Chicago Style correctly.
Since {{?capitalize}} and {{?cap_first}} are taken, I propose {{?title_case}}
with an optional parameter (default is Chicago):
* chicago
* ap
* apa
* mla
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)