-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow individual items to override locale when rendering references #268
Comments
When use_raw_bibtex_entry:false, the liquid tags {{ }} in the bibtex input are evaluated.
The capitalization of the words, however, is done according to the CSL file. However, I think the capitalization is overridden somewhat due to the protected bibtex field (i.e. the double braces). Normally, this would mean that the capitalization is kept the same as in the input. In your case, I don't know exactly how it should be rendered, but the use_raw_bibtex is unlikely to be the problem here. Try removing one of the pair of braces around the title, it might fix the issue. Otherwise, the issue might be in an updated CSL style for the chosen citation style. |
Yes, this happens because the style uses title-case. Looking at the CSL spec I just noticed that title-case conversion should be skipped for non-English references. That's something we missed in If you use only non English references or if you know that the casing in your BibTeX file is already correct, you could also remove title-casing from the style as a temporary workaround (on a quick glance, I believe the appropriate place might be here). |
Hmm, turns out this is already implemented in citeproc-ruby after all, so you're probably right that this used to work already and we broke it somewhere. |
Sorry for the noise but I think this is actually not implemented in jekyll-scholar. If all your references are Spanish, you could set Switching locale per item is currently not implemented in jekyll-scholar, but it should be easy to do if there is demand for it. |
Thanks, Sylvester, for looking into this. I would guess the need would be
at the item level for most scholars I work with (comparative and
post-colonial literature, and philology). We cite from many traditions. In
this bibliography alone I have Spanish, dutch, English, Italian and hindi.
Item level would be a life saver. Or at the very least, figure out how we
can get the CSL to respect what we do when we want to --force it.
…On Sat, Jul 20, 2019 at 6:25 AM Sylvester Keil ***@***.***> wrote:
Sorry for the noise but I think this is actually not implemented in
jekyll-scholar. If all your references are Spanish, you could set locale
to es in your jekyll-scholar configuration and that should turn off
title-casing for all references.
Switching locale per item is currently not implemented in jekyll-scholar,
but it should be easy to do if there is demand for it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#268?email_source=notifications&email_token=AAB3HLS5AJ2FQLKKECFIZ6LQALRYXA5CNFSM4IFNENCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2NLN7Q#issuecomment-513455870>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAB3HLT4SEYXAXTAF3ZHOP3QALRYXANCNFSM4IFNENCA>
.
|
Oh, I see what you mean by "this" in your last message. You are separating
the two things: the implementation of use_raw_bibtex_entry and the locale
issue. Sorry for my noise now.
…On Sat, Jul 20, 2019 at 8:28 AM Alex Gil ***@***.***> wrote:
Thanks, Sylvester, for looking into this. I would guess the need would be
at the item level for most scholars I work with (comparative and
post-colonial literature, and philology). We cite from many traditions. In
this bibliography alone I have Spanish, dutch, English, Italian and hindi.
Item level would be a life saver. Or at the very least, figure out how we
can get the CSL to respect what we do when we want to --force it.
On Sat, Jul 20, 2019 at 6:25 AM Sylvester Keil ***@***.***>
wrote:
> Sorry for the noise but I think this is actually not implemented in
> jekyll-scholar. If all your references are Spanish, you could set locale
> to es in your jekyll-scholar configuration and that should turn off
> title-casing for all references.
>
> Switching locale per item is currently not implemented in jekyll-scholar,
> but it should be easy to do if there is demand for it.
>
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub
> <#268?email_source=notifications&email_token=AAB3HLS5AJ2FQLKKECFIZ6LQALRYXA5CNFSM4IFNENCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2NLN7Q#issuecomment-513455870>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAB3HLT4SEYXAXTAF3ZHOP3QALRYXANCNFSM4IFNENCA>
> .
>
|
citeproc-ruby actually has a feature that will let each item override the locale using its 'language' field. This would affect not only title-casing but everything that can be localized in CSL (e.g., dates, ordinals, certain terms like 'ibid', and so on). To get the same in scholar, we would just have to do something like this in jekyll-scholar around here: basically, set Ideally we'd also cache locales (similar to styles) so that we don't keep parsing the same locale files over and over again. |
use_raw_bibtex_entry: true
does not seem to be working
I can give it a spin in the afternoon and send a PR. I'll let you know if I get stumped. |
Ok. Gave it a shot for the past couple of hours. I built the gem locally and went to town tweaking. Now officially stumped. Everything is finally running without exceptions. Except, the citation is still rendering with the capital letters. Any ideas? def render_bibliography(entry, index = nil)
entry.language = entry['language']
unless entry.language == ""
if config['allow_locale_overrides'] == true && entry.language != config['locale']
begin
new_locale = CSL::Locale.load(entry.language)
unless new_locale.nil?
original_locale, @locale = @locale, new_locale
end
rescue ParseError
# locale not found
end
end
renderer.render citation_item_for(entry, index),
styles(style).bibliography
end
ensure
unless original_locale.nil?
@locale = original_locale
end
end |
Also:
|
Did we give up on getting the CSL to respect double braces? I couldn't understand if it was just impossible. The pipeline remains somewhat mysterious to me. |
Fixed it! Doh. I was changing the
Well, "worked," since it rendered the wrong type of quotes. Now gotta go see if I can get it to return to the original locale. ... |
Yes, those are the quotes defined by the Spanish locale: like I mentioned, this change renders the whole citation using Spanish locale (notice also the different ordinals). If only the quotes are an issue, you could adjust the Spanish locale to use different quotes... but if you want to render the reference using English locale but skip title-casing I think we'll need to work around this differently. |
Ok. First part in PR already. I'm not sure I feel comfortable doing the cache part. I went and looked and it looked a bit over my pay grade. |
I read up on the manual, and other styles, and it is perfectly legitimate to have different quote systems according to the languages if you're mixing it up. I say we should go with this solution. |
Looks great! I added the locale cache and a test for this. |
If you could document the |
You have also earned write access to the repo is you want it! |
Thanks! I'll push the documentation in the next couple of hours. |
Done. Glad we got this working. Enjoyed studying your refactoring, and the test you wrote. Little by little I'm getting a sense of how it all ties together. |
Awesome, thanks for getting this done! Just pushed 5.15.0 to RubyGems. |
I'm using
chicago-fullnote-bibliography
as my style. Given the following entry in the .bib file:I get this citation:
In Spanish the rule would lower case "Narrativa En El" and "De." The correct result should be:
EDIT: Adding an edit here for context since the title of the issue changed. Originally I indicated that I was using
use_raw_bibtex_entry: true
and that it was not working as expected for the double braces.The text was updated successfully, but these errors were encountered: