55 lines
8.9 KiB
HTML
55 lines
8.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · BibTeX.jl</title><link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/4.2.0/normalize.min.css" rel="stylesheet" type="text/css"/><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link href="assets/documenter.css" rel="stylesheet" type="text/css"/></head><body><nav class="toc"><h1>BibTeX.jl</h1><select id="version-selector" onChange="window.location.href=this.value" style="visibility: hidden"></select><form class="search" action="search.html"><input id="search-query" name="q" type="text" placeholder="Search docs"/></form><ul><li class="current"><a class="toctext" href="index.html">Home</a><ul class="internal"></ul></li></ul></nav><article id="docs"><header><nav><ul><li><a href="index.html">Home</a></li></ul><a class="edit-page" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/docs/src/index.md"><span class="fa"></span> Edit on GitHub</a></nav><hr/><div id="topbar"><span>Home</span><a class="fa fa-bars" href="#"></a></div></header><h1><a class="nav-anchor" id="BibTeX.jl-1" href="#BibTeX.jl-1">BibTeX.jl</a></h1><ul><li><a href="index.html#BibTeX.Bibliography-Tuple{String}"><code>BibTeX.Bibliography</code></a></li><li><a href="index.html#BibTeX.Citation"><code>BibTeX.Citation</code></a></li><li><a href="index.html#BibTeX.parse_bibtex-Tuple{Any}"><code>BibTeX.parse_bibtex</code></a></li><li><a href="index.html#BibTeX.search_latex_directive"><code>BibTeX.search_latex_directive</code></a></li><li><a href="index.html#BibTeX.simplify_latex"><code>BibTeX.simplify_latex</code></a></li><li><a href="index.html#BibTeX.strip_argument"><code>BibTeX.strip_argument</code></a></li></ul><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.Citation" href="#BibTeX.Citation"><code>BibTeX.Citation</code></a> — <span class="docstring-category">Type</span>.</div><div><pre><code class="language-none">Citation{S}(data::Dict{String,String})</code></pre><p>A bibliography item in a bibTeX database, based on a dictionary of strings to values. It is parameterized by a symbol <code>S</code> giving the type of the item (<code>:article</code> etcetera). A <code>b::Citation</code> supports <code>b[key]</code> access to retrieve the data and in general acts like a dictionary from <code>String</code> to <code>String</code>.</p></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/citation.jl#L1-L9">source</a><br/></section><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.Bibliography-Tuple{String}" href="#BibTeX.Bibliography-Tuple{String}"><code>BibTeX.Bibliography</code></a> — <span class="docstring-category">Method</span>.</div><div><pre><code class="language-none">Bibliography(bibtex::String)
|
|
Bibliography(io::IO)</code></pre><p>Given a string (or IO stream) of bibtex-format bibliography data, parses the data and returns a <code>Dict</code>-like object <code>b::Bibliography</code> that behaves as a dictionary mapping strings to bibliography items <a href="index.html#BibTeX.Citation"><code>Citation</code></a>.</p></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/bibliography.jl#L6-L14">source</a><br/></section><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.parse_bibtex-Tuple{Any}" href="#BibTeX.parse_bibtex-Tuple{Any}"><code>BibTeX.parse_bibtex</code></a> — <span class="docstring-category">Method</span>.</div><div><pre><code class="language-none">parse_bibtex(text)</code></pre><p>This is a simple input parser for BibTex. I had trouble finding a standard specification, but I've included several features of real BibTex. Returns a preamble (or an empty string) and a dict of dicts.</p><pre><code class="language-julia-repl">julia> using BibTeX: parse_bibtex
|
|
|
|
julia> preamble, result = parse_bibtex("""
|
|
@preamble{some instructions}
|
|
@comment blah blah
|
|
@string{short = long}
|
|
@a{b,
|
|
c = {{c} c},
|
|
d = "d {"} d",
|
|
e = f # short
|
|
}
|
|
""");
|
|
|
|
julia> preamble
|
|
"some instructions"
|
|
|
|
julia> result["b"]["__type__"]
|
|
"a"
|
|
|
|
julia> result["b"]["c"]
|
|
"{c} c"
|
|
|
|
julia> result["b"]["d"]
|
|
"d {\"} d"
|
|
|
|
julia> result["b"]["e"]
|
|
"f short"
|
|
|
|
julia> parse_bibtex("@book")
|
|
ERROR: Expected { on line 1
|
|
[...]
|
|
|
|
julia> parse_bibtex("@book@")
|
|
ERROR: Expected { on line 1
|
|
[...]</code></pre><p>Repeated fields and keys are not allowed:</p><pre><code class="language-julia-repl">julia> using BibTeX: parse_bibtex
|
|
|
|
julia> parse_bibtex("""
|
|
@book{abook,
|
|
title = A}
|
|
@book{abook,
|
|
title = B}
|
|
""")
|
|
ERROR: Duplicated id abook on line 3
|
|
[...]
|
|
|
|
julia> parse_bibtex("""
|
|
@book{abook,
|
|
title = A,
|
|
title = B}
|
|
""")
|
|
ERROR: Duplicated field title on line 3
|
|
[...]</code></pre></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/parser.jl#L120-L187">source</a><br/></section><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.search_latex_directive" href="#BibTeX.search_latex_directive"><code>BibTeX.search_latex_directive</code></a> — <span class="docstring-category">Function</span>.</div><div><pre><code class="language-none">search_latex_directive(astring, start_position = 1, inbrace=false)</code></pre><p>Search for a LaTeX directive \directive{argument} or similar in <code>string</code>, returning <code>(start_position, directive_end, argument_end)</code> such that <code>string[start_position:directive_end]</code> gives <code>\directive</code> and <code>string[directive_end+1:argument_end]</code> gives <code>{argument}</code>. Use <a href="index.html#BibTeX.strip_argument"><code>strip_argument</code></a> to remove surrounding braces and whitespace from the <code>argument</code>.</p></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/latex.jl#L22-L29">source</a><br/></section><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.simplify_latex" href="#BibTeX.simplify_latex"><code>BibTeX.simplify_latex</code></a> — <span class="docstring-category">Function</span>.</div><div><pre><code class="language-none">simplify_latex(astring, extra_directives)</code></pre><p>Simplify a LaTeX string <code>astring</code> into "plain text" if possible, stripping/converting known LaTeX directives in favor of e.g Unicode.</p><p><code>extra_directives</code> is a dictionary (<code>String=>String</code>) that maps LaTeX directives to replacements. It defaults to <code>BibTeX.text_directives</code>, which simply strips out things like bold and italics. Alternatively, you can pass <code>BibTeX.markdown_directives</code>, which uses Markdown syntax for such directives.</p></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/latex.jl#L349-L359">source</a><br/></section><section class="docstring"><div class="docstring-header"><a class="docstring-binding" id="BibTeX.strip_argument" href="#BibTeX.strip_argument"><code>BibTeX.strip_argument</code></a> — <span class="docstring-category">Function</span>.</div><div><pre><code class="language-none">strip_argument(astring, start_position = start(astring), end_position = endof(astring))</code></pre><p>Return the substring of <code>astring</code> corresponding to the argument from <code>start_position:end_position</code>, stripping leading/trailing whitespace and braces.</p></div><a class="source-link" target="_blank" href="https://github.com/bramtayl/BibTeX.jl/tree/673e30ce1f3bcd42b4f9f5735b49f13fa6f4037f/src/latex.jl#L139-L144">source</a><br/></section><footer><hr/></footer></article></body></html>
|