seboettg /
citeproc-php
| 1 | <?php |
||||
| 2 | |||||
| 3 | include "../vendor/autoload.php"; |
||||
| 4 | use Seboettg\CiteProc\StyleSheet; |
||||
| 5 | use Seboettg\CiteProc\CiteProc; |
||||
| 6 | |||||
| 7 | try { |
||||
| 8 | $dataString = file_get_contents("data.json"); |
||||
| 9 | $style = StyleSheet::loadStyleSheet("ieee"); |
||||
| 10 | $citeProc = new CiteProc($style, "en-US"); |
||||
| 11 | $data = json_decode($dataString); |
||||
| 12 | $bibliography = $citeProc->render($data, "bibliography"); |
||||
| 13 | $cssStyles = $citeProc->renderCssStyles(); |
||||
| 14 | } catch (Exception $e) { |
||||
| 15 | echo $e->getMessage(); |
||||
| 16 | die; |
||||
| 17 | } |
||||
| 18 | |||||
| 19 | ?> |
||||
| 20 | <html> |
||||
| 21 | <head> |
||||
| 22 | <title>CSL Test</title> |
||||
| 23 | <style type="text/css" rel="stylesheet"> |
||||
| 24 | |||||
| 25 | article { |
||||
| 26 | min-width: 300px; |
||||
| 27 | max-width: 600px; |
||||
| 28 | width: 50%; |
||||
| 29 | margin: 0 auto; |
||||
| 30 | } |
||||
| 31 | |||||
| 32 | h3 { |
||||
| 33 | border-bottom: 1px solid #000; |
||||
| 34 | } |
||||
| 35 | |||||
| 36 | .csl-entry { |
||||
| 37 | margin: 0.5em 0; |
||||
| 38 | } |
||||
| 39 | |||||
| 40 | <?php echo "\n".$cssStyles; ?> |
||||
| 41 | </style> |
||||
| 42 | </head> |
||||
| 43 | <body> |
||||
| 44 | <article> |
||||
| 45 | <h1>Chapter I – Use CiteProc for Citations and Bibliographies</h1> |
||||
| 46 | <h2>Lorem Ipsum</h2> |
||||
| 47 | <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore |
||||
| 48 | magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd |
||||
| 49 | gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing |
||||
| 50 | elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero |
||||
| 51 | eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum |
||||
| 52 | dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut |
||||
| 53 | labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. |
||||
| 54 | Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet |
||||
| 55 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-4"}]')); ?>.</p> |
||||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||||
| 56 | |||||
| 57 | <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat |
||||
| 58 | nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue |
||||
| 59 | duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy |
||||
| 60 | nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat |
||||
| 61 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-2"}]')); ?>.</p> |
||||
|
0 ignored issues
–
show
Are you sure
$citeProc->render($data,...e('[{"id":"ITEM-2"}]')) of type array|string|string[] can be used in echo?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 62 | |||||
| 63 | <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo |
||||
| 64 | consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore |
||||
| 65 | eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril |
||||
| 66 | delenit augue duis dolore te feugait nulla facilisi.</p> |
||||
| 67 | |||||
| 68 | <p>Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim |
||||
| 69 | assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet |
||||
| 70 | dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit |
||||
| 71 | lobortis nisl ut aliquip ex ea commodo consequat <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-1"}]')); ?>.</p> |
||||
|
0 ignored issues
–
show
Are you sure
$citeProc->render($data,...e('[{"id":"ITEM-1"}]')) of type array|string|string[] can be used in echo?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 72 | |||||
| 73 | <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat |
||||
| 74 | nulla facilisis <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-3"}]')); ?>.</p> |
||||
|
0 ignored issues
–
show
Are you sure
$citeProc->render($data,...e('[{"id":"ITEM-3"}]')) of type array|string|string[] can be used in echo?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 75 | |||||
| 76 | <p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem |
||||
| 77 | ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor |
||||
| 78 | invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et |
||||
| 79 | ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet |
||||
| 80 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-3"},{"id":"ITEM-4"}]')); ?>.</p> |
||||
|
0 ignored issues
–
show
Are you sure
$citeProc->render($data,...3"},{"id":"ITEM-4"}]')) of type array|string|string[] can be used in echo?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 81 | |||||
| 82 | <h3>Literature</h3> |
||||
| 83 | <?php echo $bibliography; ?> |
||||
| 84 | |||||
| 85 | |||||
| 86 | |||||
| 87 | <h1>Chapter II – Enrich Citations and Bibliographies with additional Markup.</h1> |
||||
| 88 | |||||
| 89 | <?php |
||||
| 90 | $dataString = file_get_contents("data.json"); |
||||
| 91 | $style = StyleSheet::loadStyleSheet("ieee"); |
||||
| 92 | $citeProc = new CiteProc($style, "en-US", [ |
||||
| 93 | "bibliography" => [ |
||||
| 94 | "author" => function ($authorItem, $renderedText) { |
||||
| 95 | if (isset($authorItem->id)) { |
||||
| 96 | return '<a href="https://example.org/author/'.$authorItem->id.'">'.$renderedText.'</a>'; |
||||
| 97 | } |
||||
| 98 | return $renderedText; |
||||
| 99 | }, |
||||
| 100 | "title" => function ($cslItem, $renderedText) { |
||||
| 101 | return '<a href="https://example.org/publication/'.$cslItem->id.'">'.$renderedText.'</a>'; |
||||
| 102 | }, |
||||
| 103 | "csl-entry" => function ($cslItem, $renderedText) { |
||||
| 104 | return '<a id="'.$cslItem->id.'" href="#'.$cslItem->id.'"></a>'.$renderedText; |
||||
| 105 | } |
||||
| 106 | ], |
||||
| 107 | "citation" => [ |
||||
| 108 | "citation-number" => function ($cslItem, $renderedText) { |
||||
| 109 | return '<a href="#'.$cslItem->id.'">'.$renderedText.'</a>'; |
||||
| 110 | } |
||||
| 111 | ] |
||||
| 112 | ]); |
||||
| 113 | $data = json_decode($dataString); |
||||
| 114 | $bibliography = $citeProc->render($data, "bibliography"); |
||||
| 115 | $cssStyles = $citeProc->renderCssStyles(); |
||||
| 116 | ?> |
||||
| 117 | <h2>Lorem Ipsum</h2> |
||||
| 118 | <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore |
||||
| 119 | magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd |
||||
| 120 | gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing |
||||
| 121 | elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero |
||||
| 122 | eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum |
||||
| 123 | dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut |
||||
| 124 | labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. |
||||
| 125 | Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet |
||||
| 126 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-4"}]')); ?>.</p> |
||||
| 127 | |||||
| 128 | <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat |
||||
| 129 | nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue |
||||
| 130 | duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy |
||||
| 131 | nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat |
||||
| 132 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-2"}]')); ?>.</p> |
||||
| 133 | |||||
| 134 | <p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo |
||||
| 135 | consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore |
||||
| 136 | eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril |
||||
| 137 | delenit augue duis dolore te feugait nulla facilisi.</p> |
||||
| 138 | |||||
| 139 | <p>Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim |
||||
| 140 | assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet |
||||
| 141 | dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit |
||||
| 142 | lobortis nisl ut aliquip ex ea commodo consequat <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-1"}]')); ?>.</p> |
||||
| 143 | |||||
| 144 | <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat |
||||
| 145 | nulla facilisis <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-3"}]')); ?>.</p> |
||||
| 146 | |||||
| 147 | <p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem |
||||
| 148 | ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor |
||||
| 149 | invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et |
||||
| 150 | ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet |
||||
| 151 | <?php echo $citeProc->render($data, "citation", json_decode('[{"id":"ITEM-3"},{"id":"ITEM-4"}]')); ?>.</p> |
||||
| 152 | |||||
| 153 | <h3>Literature</h3> |
||||
| 154 | <?php echo $bibliography; ?> |
||||
| 155 | </article> |
||||
| 156 | |||||
| 157 | </body> |
||||
| 158 | </html> |
||||
| 159 |