25 Commits
Author SHA1 Message Date
Frederik Möllers 5b755a7e82 Fix notes for @misc items
Note was shown twice
2026-03-27 00:19:19 +01:00
Frederik Möllers 295a6afe72 Fix missing braces in if-statements
For notes and comments in JanosBibliographyStyle
2026-03-27 00:15:30 +01:00
Frederik Möllers d51bd29402 Add notes to entries (in addition to comments) 2026-03-27 00:09:32 +01:00
Frederik Möllers c7abb01eae Merge remote-tracking branch 'upstream/master' into staging 2026-02-10 00:56:03 +01:00
Martin Monperrus 6d0b3c8493 fix: improve caching feature usability 2026-01-24 06:33:48 +01:00
Martin Monperrus d15355b65c fix syntactic bug 2025-11-12 22:09:08 +01:00
Frederik Möllers 05fe036ba6 Don't fail makehtml.sh if no *.dat file exists 2025-10-24 02:36:14 +02:00
Frederik Möllers f4298cf171 Add comment field to JanosBibliographyStyle
Print the content of "Comment" fields in JanosBibliographyStyle, similar
to how it is done in VancouverBibliographyStyle.
2025-10-24 02:26:57 +02:00
Frederik Möllers d714808318 Merge branch 'master' into staging
Pull latest upstream changes
2025-10-24 02:24:48 +02:00
Frederik Möllers c0912e172c Merge branch 'github'
Pull latest upstream changes
2025-10-24 02:23:58 +02:00
Frederik Möllers ef723ef291 Merge branch 'monperrus:master' into master 2025-10-24 00:13:16 +00:00
Martin Monperrus 95fe893121 Update README.wiki 2025-10-01 14:04:59 +02:00
Hans-Nikolai Viessmann 2381e7c412 add DokuWiki bb2dw plugin reference to readme file (#138) 2025-10-01 14:00:10 +02:00
Martin Monperrus 2867059f68 fix https://github.com/monperrus/bibtexbrowser/issues/136 2025-09-09 07:13:11 +02:00
Frederik Möllers a8c24dab18 Add internationalization for third-party styles (#137) 2025-09-08 06:59:13 +02:00
Frederik Möllers e2154ea9b0 Translate remaining english strings to german
"vol.", "no.", "pp."
2025-09-08 00:19:35 +02:00
Frederik Möllers 24689aceb4 Add internationalization for third-party styles
Added proper internationalization for JanosBibliographyStyle and
VancouverBibliographyStyle. Translation of strings like "in", "Master's
Thesis" etc. was missing.
2025-09-08 00:18:51 +02:00
Frederik Möllers 0bd87f51fd Improve use of CSS font-weight 2025-09-08 00:18:51 +02:00
Frederik Möllers 8a4122d049 Add internationalization for third-party styles
Added proper internationalization for JanosBibliographyStyle and
VancouverBibliographyStyle. Translation of strings like "in", "Master's
Thesis" etc. was missing.
2025-09-08 00:03:34 +02:00
Frederik Möllers 0f3216a056 Use staging URL 2025-09-07 23:12:16 +02:00
Frederik Möllers bc3a28c815 Translate remaining english strings to german
"vol.", "no.", "pp."
2025-09-07 23:09:34 +02:00
Frederik Möllers f2195e8a59 Add internationalization for third-party styles
Added proper internationalization for JanosBibliographyStyle and
VancouverBibliographyStyle. Translation of strings like "in", "Master's
Thesis" etc. was missing.
2025-09-07 23:02:26 +02:00
Frederik Möllers 694fe7ceba Improve use of CSS font-weight 2025-09-07 09:06:01 +02:00
Frederik Möllers 3f104a22b9 Ignore MacOS .DS* files 2025-08-14 01:05:42 +02:00
Frederik Möllers 63dc0d58bb Use self-hosted JavaScript libraries
Add iFrameResizer for when the publication lists are included via an
iframe.
Add self-hosted copies of jQuery and MathJax.
Fix some styling in the code and in the HTML via CSS
2025-08-14 01:03:54 +02:00
22 changed files with 385 additions and 25 deletions
+3 -1
View File
@@ -1,4 +1,6 @@
# ignore generated artifacts
/artifacts
# ignore temporary directory if it remains after testing or so
/temp
/temp
# ignore Mac OS hidden files
/**/.DS_Store
+121
View File
@@ -1455,6 +1455,72 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($results));
}
function test_tags_pagination() {
// Define the page size for pagination
bibtexbrowser_configure('TAGS_SIZE', 2);
// Create a test BibTeX database with multiple entries and keywords
$bibtex = "@article{paper1,title={Paper One},keywords={tagA, tagB},year=2020}
@article{paper2,title={Paper Two},keywords={tagC},year=2020}
@article{paper3,title={Paper Three},keywords={tagD},year=2020}
@article{paper4,title={Paper Four},keywords={tagE},year=2020}";
$test_data = fopen('php://memory','r+');
fwrite($test_data, $bibtex);
fseek($test_data, 0);
$db = new BibDataBase();
$db->update_internal("inline", $test_data);
// Create MenuManager display
$display = new MenuManager();
$display->setDB($db);
// Test the first page
$_GET["tags_page"] = '1';
ob_start();
$display->display();
$output1 = ob_get_clean();
// Tags are sorted alphabetically.
$this->assertStringContainsString('tagA', $output1);
$this->assertStringContainsString('tagB', $output1);
$this->assertStringNotContainsString('tagC', $output1);
// Verify pagination link to the next page
$this->assertStringContainsString('keywords_page=2', $output1);
// Test the second page
$_GET["keywords_page"] = '2';
ob_start();
$display->display();
$output2 = ob_get_clean();
$this->assertStringContainsString('tagC', $output2);
$this->assertStringContainsString('tagD', $output2);
$this->assertStringNotContainsString('tagA', $output2);
$this->assertStringNotContainsString('tagE', $output2);
// Verify navigation links to previous and next pages
$this->assertStringContainsString('keywords_page=1', $output2);
$this->assertStringContainsString('keywords_page=3', $output2);
// Test the third page
$_GET["keywords_page"] = '3';
ob_start();
$display->display();
$output3 = ob_get_clean();
$this->assertStringContainsString('tagE', $output3);
$this->assertStringNotContainsString('tagD', $output3);
// Verify navigation link to the previous page
$this->assertStringContainsString('keywords_page=2', $output3);
$this->assertStringNotContainsString('keywords_page=4', $output3); // No next page
// Clean up
unset($_GET["keywords_page"]);
}
function test_venuevc_pagination() {
// Define the page size for pagination
bibtexbrowser_configure('VENUE_SIZE', 2);
@@ -1520,6 +1586,61 @@ class BibtexbrowserTest extends PHPUnit_Framework_TestCase {
// Clean up
unset($_GET["venue_page"]);
}
function test_AcademicDisplay() {
// Create test BibTeX database with entries from different categories
$bibtex = "@article{journal1,title={Journal Article},author={John Doe},journal={Nature},year=2023,type={Journal Articles}}
@inproceedings{conf1,title={Conference Paper},author={Jane Smith},booktitle={ICSE},year=2023,type={Refereed Conference Papers}}
@book{book1,title={A Book},author={Bob Johnson},publisher={Springer},year=2022,type={Books}}
@techreport{tech1,title={Technical Report},author={Alice Brown},institution={MIT},year=2023,type={Technical Reports}}";
$test_data = fopen('php://memory','x+');
fwrite($test_data, $bibtex);
fseek($test_data,0);
$db = new BibDataBase();
$db->update_internal("inline", $test_data);
// Test with BIBTEXBROWSER_ACADEMIC_TOC = true
bibtexbrowser_configure('BIBTEXBROWSER_ACADEMIC_TOC', true);
$display = new AcademicDisplay();
$display->setDB($db);
ob_start();
$display->display();
$output_with_toc = ob_get_clean();
// Verify TOC is present
// $this->assertStringContainsString('class="btb-menu-toc"', $output_with_toc);
$this->assertStringContainsString('Refereed Articles', $output_with_toc);
// Verify HTML structure for both cases
$xml1 = new SimpleXMLElement("<doc>".$output_with_toc."</doc>");
$headers1 = $xml1->xpath('//div[@class="sheader"]');
$this->assertEquals(0, count($headers1));
$anchors = $xml1->xpath('//h2');
$this->assertGreaterThan(3, count($anchors));
// Test with BIBTEXBROWSER_ACADEMIC_TOC = false
bibtexbrowser_configure('BIBTEXBROWSER_ACADEMIC_TOC', false);
$display2 = new AcademicDisplay();
$display2->setDB($db);
ob_start();
$display2->display();
$output_without_toc = ob_get_clean();
// Verify TOC is not present
$this->assertStringNotContainsString('class="btb-menu-toc"', $output_without_toc);
// But category headers should still be present
$this->assertStringContainsString('Refereed Articles', $output_without_toc);
$xml2 = new SimpleXMLElement("<doc>".$output_without_toc."</doc>");
$headers2 = $xml2->xpath('//div[@class="sheader"]');
$this->assertGreaterThan(0, count($headers2));
}
} // end class
// Test implementation that records events
+2 -1
View File
@@ -60,10 +60,11 @@ The following uses bibtexbrowser under the hood:
* [[http://www.monperrus.net/martin/feeding-mysql-database-with-bibtexbrowser|Feeding a MySQL database from the content of a bibtex file]]
* Publication lists in Wordpress with [[http://www.monperrus.net/martin/wp-publications|wp-publications]]
* [[http://www.monperrus.net/martin/publication-lists-with-hal-and-bibtexbrowser|Publication lists with HAL and bibtexbrowser]]
* Generating publication lists in DokuWiki using the [[https://www.dokuwiki.org/plugin:bb4dw|bb4dw plugin]]
=====Demo and screenshot=====
Demo: [[http://bibtexbrowser.sourceforge.net/bibtexbrowser.php?bib=metrics.bib|Here, you can browse a bibtex file dedicated to software metrics]]
Demo: [[https://www.monperrus.net/martin/bibtexbrowser.php|Here, you can browse a bibtex file of Martin's papers.]]
<img height="500" src="https://www.monperrus.net/martin/bibtexbrowser/bibtexbrowser-screenshot.png" alt="bibtexbrowser screenshot"/>
+42
View File
@@ -0,0 +1,42 @@
@import url("/static/fonts/manrope.css");
body {
color: rgba(0, 0, 0, 0.8);
font-family: "Manrope",Arial,sans-serif;
font-weight: 500;
line-height: 1.8;
margin: 0;
}
.rheader {
display: none;
}
.sheader {
font-size: 1.5rem;
font-weight: 700;
padding-top: 1.5em;
padding-bottom: .5em;
}
.theader {
display: block;
font-size: 1.25rem;
font-weight: 700;
padding-top: .5em;
padding-bottom: .5em;
}
td.bibref {
display: none;
}
td.bibitem {
padding-left: 1.5rem;
display: block;
}
.bibtitle {
font-weight: 700;
}
a {
color: #C01632;
text-decoration: underline;
outline: none;
}
a:hover {
text-decoration: none;
}
+4 -1
View File
@@ -7,13 +7,16 @@ $BIBTEXBROWSER_LANG['Book Chapters'] = "Buchbeiträge";
$BIBTEXBROWSER_LANG['Chapter in'] = "Kapitel in";
$BIBTEXBROWSER_LANG['In'] = "In";
$BIBTEXBROWSER_LANG['Master\'s thesis'] = "Masterarbeit";
$BIBTEXBROWSER_LANG['no.'] = "Nr.";
$BIBTEXBROWSER_LANG['No date'] = "Kein Datum";
$BIBTEXBROWSER_LANG['No publications present'] = "Keine Publikationen vorhanden";
$BIBTEXBROWSER_LANG['Other Publications'] = "Andere Veröffentlichungen";
$BIBTEXBROWSER_LANG['pp.'] = "S.";
$BIBTEXBROWSER_LANG['PhD thesis'] = "Dissertation";
$BIBTEXBROWSER_LANG['Refereed Articles'] = "Zeitschriftenbeiträge";
$BIBTEXBROWSER_LANG['Refereed Conference Papers'] = "Konferenzbeiträge";
$BIBTEXBROWSER_LANG['Refereed Workshop Papers'] = "Workshopbeiträge";
$BIBTEXBROWSER_LANG['Technical report'] = "Technischer Bericht";
$BIBTEXBROWSER_LANG['vol.'] = "Bd.";
@define('LAST_AUTHOR_SEPARATOR',' und ');
?>
?>
+25 -2
View File
@@ -3,7 +3,11 @@ bibtexbrowser_configure('ABBRV_TYPE','key');
// use tabular layout (HTML tables)
bibtexbrowser_configure('BIBTEXBROWSER_LAYOUT','table');
// URL to individual files
bibtexbrowser_configure('BIBTEXBROWSER_URL',"https://publications.zrd-saar.de/");
bibtexbrowser_configure('BIBTEXBROWSER_URL',"https://publications-staging.zrd-saar.de/");
// URL to jQuery
bibtexbrowser_configure('JQUERY_URI', '/static/jquery-3.6.4.min.js');
// URL to MathJax
bibtexbrowser_configure('MATHJAX_URI', '/static/TeX-AMS_HTML.V2.7.1.js');
// target for links
bibtexbrowser_configure('BIBTEXBROWSER_LINKS_TARGET','_blank');
// use IEEE Transactions-like style, e.g. puts authors in front of title
@@ -37,4 +41,23 @@ bibtexbrowser_configure('BIBTEXBROWSER_URL_BUILDER', 'url_builder_static');
function url_builder_static($bibentry) {
return BIBTEXBROWSER_URL.'keys/'.$bibentry->getKey().'.html';
}
?>
// A custom function for the MathJax footer to use the static URL instead of the CDN one
// Also include iframeResizer JS
function javascript_math() {
?>
<script>
MathJax = {
tex: {
inlineMath: [['$', '$'], ['\\(', '\\)']]
}
};
</script>
<script type="text/javascript" id="MathJax-script" async src="/static/tex-mml-chtml.js">
</script>
<script type="text/javascript" id="iFrameResizer" src="/static/iframe-resizer.child.js">
</script>
<?php
}
?>
+28 -18
View File
@@ -236,7 +236,7 @@ if (defined('ENCODING')) {
@define('BIBTEXBROWSER_URL',basename(__FILE__));
// Specify the location of the cache file for servers that need temporary files written in a specific location
@define('CACHE_DIR','');
@define('CACHE_DIR','.');
// Specify the location of the bib file for servers that need do not allow slashes in URLs,
// where the bib file and bibtexbrowser.php are in different directories.
@@ -368,7 +368,7 @@ function _zetDB($bibtex_filenames) {
// ---------------------------- HANDLING caching of compiled bibtex files
// for sake of performance, once the bibtex file is parsed
// we try to save a "compiled" in a txt file
$compiledbib = CACHE_DIR.'bibtexbrowser_'.md5($bibtex_filenames).'.dat';
$compiledbib = c("CACHE_DIR").'/bibtexbrowser_'.md5($bibtex_filenames).'.dat';
$parse=filemtime(__FILE__)>@filemtime($compiledbib);
@@ -2524,11 +2524,11 @@ function JanosBibliographyStyle($bibentry) {
}
if ($type=="inproceedings" && $bibentry->hasField(BOOKTITLE)) {
$booktitle = '<span class="bibbooktitle">'.'In '.$bibentry->getField(BOOKTITLE).'</span>';
$booktitle = '<span class="bibbooktitle">'.__('In').' '.$bibentry->getField(BOOKTITLE).'</span>';
}
if ($type=="incollection" && $bibentry->hasField(BOOKTITLE)) {
$booktitle = '<span class="bibbooktitle">'.'Chapter in '.$bibentry->getField(BOOKTITLE).'</span>';
$booktitle = '<span class="bibbooktitle">'.__('Chapter in').' '.$bibentry->getField(BOOKTITLE).'</span>';
}
if ($type=="article" && $bibentry->hasField("journal")) {
@@ -2551,14 +2551,14 @@ function JanosBibliographyStyle($bibentry) {
$publisher='';
if ($type=="phdthesis") {
$publisher = 'PhD thesis, '.$bibentry->getField(SCHOOL);
$publisher = __('PhD thesis').', '.$bibentry->getField(SCHOOL);
}
if ($type=="mastersthesis") {
$publisher = 'Master\'s thesis, '.$bibentry->getField(SCHOOL);
$publisher = __('Master\'s thesis').', '.$bibentry->getField(SCHOOL);
}
if ($type=="techreport") {
$publisher = 'Technical report, ';
$publisher = __('Technical report').', ';
$publisher .=$bibentry->getField("institution");
if ($bibentry->hasField("number")) {
$publisher .= ' '.$bibentry->getField("number");
@@ -2571,19 +2571,29 @@ function JanosBibliographyStyle($bibentry) {
if ($publisher!='') $entry[] = $publisher;
if ($type=="article") {
if ($bibentry->hasField('volume')) $entry[] = "vol. ".$bibentry->getField("volume");
if ($bibentry->hasField('number')) $entry[] = 'no. '.$bibentry->getField("number");
if ($bibentry->hasField('volume')) $entry[] = __("vol.")." ".$bibentry->getField("volume");
if ($bibentry->hasField('number')) $entry[] = __('no.').' '.$bibentry->getField("number");
}
if ($bibentry->hasField('address')) $entry[] = $bibentry->getField("address");
if ($bibentry->hasField('pages')) $entry[] = str_replace("--", "-", "pp. ".$bibentry->getField("pages"));
if ($bibentry->hasField('pages')) $entry[] = str_replace("--", "-", __("pp.")." ".$bibentry->getField("pages"));
if ($bibentry->hasField(YEAR)) $entry[] = $bibentry->getYear();
$result = implode(", ",$entry).'.';
// some comments (e.g. acceptance rate)?
if ($bibentry->hasField('comment')) {
$result .= " (".$bibentry->getField("comment").")";
}
// some notes (e.g. "accepted for publishing")?
if (($type!="misc") && $bibentry->hasField('note')) {
$result .= " (".$bibentry->getField("note").")";
}
// add the Coin URL
$result .= "\n".$bibentry->toCoins();
@@ -2641,9 +2651,9 @@ function VancouverBibliographyStyle($bibentry) {
$booktitle = $editor;
$booktitle = $bibentry->getField("note");
} else if ($type=="inproceedings") {
$booktitle = 'In: ' . $editor . $bibentry->getField(BOOKTITLE);
$booktitle = __('In').': ' . $editor . $bibentry->getField(BOOKTITLE);
} else if ($type=="incollection") {
$booktitle = 'Chapter in ';
$booktitle = __('Chapter in').' ';
if ($editor!='') $booktitle .= $editor;
$booktitle .= $bibentry->getField(BOOKTITLE);
} else if ($type=="article") {
@@ -2656,11 +2666,11 @@ function VancouverBibliographyStyle($bibentry) {
$publisher='';
if ($type=="phdthesis") {
$publisher = 'PhD thesis, '.$bibentry->getField(SCHOOL);
$publisher = __('PhD thesis').', '.$bibentry->getField(SCHOOL);
} else if ($type=="mastersthesis") {
$publisher = 'Master\'s thesis, '.$bibentry->getField(SCHOOL);
$publisher = __('Master\'s thesis').', '.$bibentry->getField(SCHOOL);
} else if ($type=="techreport") {
$publisher = 'Technical report, '.$bibentry->getField("institution");
$publisher = __('Technical report').', '.$bibentry->getField("institution");
}
if ($bibentry->hasField("publisher")) {
$publisher = $bibentry->getField("publisher");
@@ -2994,7 +3004,7 @@ class MenuManager {
} else $page = 1;
if (count($tags)>0) $this->displayMenu('Keywords', $tags, $page, bibtexbrowser_configuration("MENU_SIZE"), Q_TAG_PAGE,
if (count($tags)>0) $this->displayMenu('Keywords', $tags, $page, bibtexbrowser_configuration("TAGS_SIZE"), Q_TAG_PAGE,
Q_TAG);
}
@@ -3477,7 +3487,7 @@ class AcademicDisplay {
$this->db = createBibDataBase();
$this->db->bibdb = $this->entries;
if (BIBTEXBROWSER_ACADEMIC_TOC != true) {
if (c("BIBTEXBROWSER_ACADEMIC_TOC") == false) {
foreach (_DefaultBibliographySections() as $section) {
$this->search2html($section['query'],$section['title']);
}
@@ -3511,7 +3521,7 @@ class AcademicDisplay {
echo "\n<a name=\"".$section['anchor']."\"></a>";
echo "<h".BIBTEXBROWSER_HTMLHEADINGLEVEL.">";
echo $section['title']." (".$section['count'].")";
echo "</h".BIBTEXBROWSER_HTMLHEADINGLEVEL.">\n",
echo "</h".BIBTEXBROWSER_HTMLHEADINGLEVEL.">\n";
$section['display']->display();
}
}
+2 -2
View File
@@ -16,7 +16,7 @@ BIBTEX_URL="https://cloud.hiz-saarland.de/public.php/dav/files/Yj8FtZsTS9TkFWG"
# command to run BibtexBrowser
BIBTEXBROWSER="${PHP} -c \"php_cli.ini\" -f \"bibtexbrowser.php\""
# DELETEME
# remove any remaining artifacts and temporary files
rm -rf "artifacts" "temp"
# create output directories and download bibtex file
mkdir -p "artifacts/keys" "temp"
@@ -54,4 +54,4 @@ done
# Clean up
rm -rf "temp"
rm bibtexbrowser_*.dat
rm -f bibtexbrowser_*.dat
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+62
View File
@@ -0,0 +1,62 @@
/* manrope-200 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 200;
src: url('/static/fonts/manrope-v19-latin_latin-ext-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-300 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 300;
src: url('/static/fonts/manrope-v19-latin_latin-ext-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-regular - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 400;
src: url('/static/fonts/manrope-v19-latin_latin-ext-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-500 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 500;
src: url('/static/fonts/manrope-v19-latin_latin-ext-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-600 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 600;
src: url('/static/fonts/manrope-v19-latin_latin-ext-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-700 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 700;
src: url('/static/fonts/manrope-v19-latin_latin-ext-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* manrope-800 - latin_latin-ext */
@font-face {
font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
font-family: 'Manrope';
font-style: normal;
font-weight: 800;
src: url('/static/fonts/manrope-v19-latin_latin-ext-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

File diff suppressed because one or more lines are too long