` that contains the `.pure-menu` that
35 | appears on the left side of the page.
36 | */
37 |
38 | #menu {
39 | margin-left: -200px; /* "#menu" width */
40 | padding-top: 5px;
41 | width: 200px;
42 | position: fixed;
43 | top: 0;
44 | left: 0;
45 | bottom: 0;
46 | z-index: 1000; /* so the menu or its navicon stays above all content */
47 | background: #e1e4e8;
48 | overflow-y: auto;
49 | -webkit-overflow-scrolling: touch;
50 | }
51 |
52 | /*
53 | All anchors inside the menu should be styled like this.
54 | */
55 | #menu a {
56 | color: inherit;
57 | border: none;
58 | padding: 0.6em 0 0.6em 0.6em;
59 | font-size: 16px;
60 | }
61 |
62 |
63 | .pure-menu {
64 | white-space: nowrap;
65 | }
66 |
67 | .pure-menu-list {
68 | list-style-type: none;
69 | }
70 |
71 | .bo-menu-item-wrapper {
72 | overflow: hidden;
73 | text-overflow: ellipsis;
74 | }
75 |
76 | /*
77 | Remove all background/borders, since we are applying them to #menu.
78 | */
79 | .pure-menu,
80 | .pure-menu ul {
81 | border: none;
82 | background: transparent;
83 | color: #777;
84 | }
85 |
86 | /*
87 | Add that light border to separate items into groups.
88 | */
89 | .pure-menu > ul > .pure-menu-item {
90 | margin-bottom: 15px;
91 | }
92 |
93 | .pure-menu > ul > .pure-menu-item > .bo-menu-item-wrapper {
94 | color: #24292e;
95 | font-weight: 500;
96 | }
97 |
98 |
99 | /*
100 | Change color of the anchor links on hover/focus.
101 | */
102 | .bo-menu-item-wrapper:hover,
103 | .bo-menu-item-wrapper:focus {
104 | background: #0366d6;
105 | color: #fff;
106 | }
107 |
108 |
109 | /* -- Dynamic Button For Responsive Menu -------------------------------------*/
110 |
111 | /*
112 | The button to open/close the Menu is custom-made and not part of Pure. Here's
113 | how it works:
114 | */
115 |
116 | /*
117 | `.menu-link` represents the responsive menu toggle that shows/hides on
118 | small screens.
119 | */
120 | .menu-wrapper {
121 | position: fixed;
122 | top: 0;
123 | left: 0;
124 | width: 100%;
125 | background: rgba(255, 255, 255, 0.7);
126 | }
127 |
128 | .menu-link {
129 | display: block; /* show this only on small screens */
130 | position: relative;
131 | background: #000;
132 | background: rgba(0,0,0,0.7);
133 | font-size: 10px; /* change this value to increase/decrease button size */
134 | z-index: 10;
135 | width: 52px;
136 | height: auto;
137 | padding: 2.1em 1.6em;
138 | }
139 |
140 | .menu-link:hover,
141 | .menu-link:focus {
142 | background: #000;
143 | }
144 |
145 | .menu-link span {
146 | position: relative;
147 | display: block;
148 | }
149 |
150 | .menu-link span,
151 | .menu-link span:before,
152 | .menu-link span:after {
153 | background-color: #fff;
154 | width: 100%;
155 | height: 0.2em;
156 | }
157 |
158 | .menu-link span:before,
159 | .menu-link span:after {
160 | position: absolute;
161 | margin-top: -0.6em;
162 | content: " ";
163 | }
164 |
165 |
166 |
167 | .menu-link span:after {
168 | margin-top: 0.6em;
169 | }
170 |
171 |
172 | /* -- Responsive Styles (Media Queries) ------------------------------------- */
173 |
174 | @media (min-width: 1012px) {
175 |
176 | .header,
177 | .content {
178 | padding-left: 2em;
179 | padding-right: 2em;
180 | }
181 |
182 | #layout {
183 | padding-left: 200px; /* left col width "#menu" */
184 | left: 0;
185 | }
186 | #menu {
187 | left: 200px;
188 | }
189 |
190 | .menu-wrapper {
191 | position: fixed;
192 | left: 200px;
193 | display: none;
194 | }
195 |
196 | #layout.active .menu-wrapper {
197 | left: 200px;
198 | }
199 | }
200 |
201 | @media (max-width: 1012px) {
202 | /* Only apply this when the window is small. Otherwise, the following
203 | case results in extra padding on the left:
204 | * Make the window small.
205 | * Tap the menu to trigger the active state.
206 | * Make the window large again.
207 | */
208 | #layout.active {
209 | position: relative;
210 | left: 200px;
211 | }
212 | }
213 |
214 |
215 | /* Override content container margin to make space for burger menu */
216 |
217 | #layout .my-5 {
218 | margin-top: 44px !important;
219 | }
--------------------------------------------------------------------------------
/assets/img/info-box-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/assets/img/info-box-icon.png
--------------------------------------------------------------------------------
/assets/img/info-box-icon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/assets/img/info-box-icon_small.png
--------------------------------------------------------------------------------
/assets/js/ui.js:
--------------------------------------------------------------------------------
1 | (function (window, document) {
2 |
3 | var layout = document.getElementById('layout'),
4 | menu = document.getElementById('menu'),
5 | menuLink = document.getElementById('menuLink'),
6 | content = document.getElementById('main');
7 |
8 | function toggleClass(element, className) {
9 | var classes = element.className.split(/\s+/),
10 | length = classes.length,
11 | i = 0;
12 |
13 | for(; i < length; i++) {
14 | if (classes[i] === className) {
15 | classes.splice(i, 1);
16 | break;
17 | }
18 | }
19 | // The className is not found
20 | if (length === classes.length) {
21 | classes.push(className);
22 | }
23 |
24 | element.className = classes.join(' ');
25 | }
26 |
27 | function toggleAll(e) {
28 | var active = 'active';
29 |
30 | e.preventDefault();
31 | toggleClass(layout, active);
32 | toggleClass(menu, active);
33 | toggleClass(menuLink, active);
34 | }
35 |
36 | menuLink.onclick = function (e) {
37 | toggleAll(e);
38 | };
39 |
40 | content.onclick = function(e) {
41 | if (menu.className.indexOf('active') !== -1) {
42 | toggleAll(e);
43 | }
44 | };
45 |
46 | var el = document.getElementsByClassName("bo-menu-item-link");
47 | for (let item of el) {
48 | item.outerHTML = "";
49 | }
50 |
51 |
52 | }(this, this.document));
--------------------------------------------------------------------------------
/bin/include_markdown.rb:
--------------------------------------------------------------------------------
1 | #! /usr/bin/env ruby
2 |
3 | require 'optparse'
4 |
5 | options = {
6 | :parent_file => "index.md" ,
7 | :parts_folder => "parts" ,
8 | :suffix => "pandoc"
9 | }
10 | usage = "ruby include_markdown.rb [options]"
11 |
12 | OptionParser.new do |opts|
13 | opts.banner = usage
14 | opts.separator ""
15 | opts.separator "Options:"
16 |
17 | opts.on("-p", "--parentfile STRING", String, "Path to the file in which snippets are to be included. Default is 'index.md'.") do |parentfile|
18 | options[:parent_file] = parentfile
19 | end
20 |
21 | opts.on("-f", "--folder STRING", String, "Path to the folder containing snippets to be included. Default is 'parts'.") do |parts_folder|
22 | options[:parts_folder] = parts_folder
23 | end
24 |
25 | opts.on("-s", "--suffix STRING", String, "Suffix of the markdown files to be included. Default is 'pandoc'.") do |suffix|
26 | options[:suffix] = suffix
27 | end
28 |
29 | end.parse!
30 |
31 | text = File.read(options[:parent_file])
32 |
33 | text.gsub!(/\@include\(([^)]+?)\)/) do |include_statement|
34 | replacement_path = File.join(options[:parts_folder], "#{$1}.#{options[:suffix]}")
35 | File.read(replacement_path)
36 | end
37 |
38 | puts text
--------------------------------------------------------------------------------
/bin/pdf2png.workflow/Contents/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleName
6 | pdf2png
7 |
8 |
9 |
--------------------------------------------------------------------------------
/bin/pdf2png.workflow/Contents/QuickLook/Preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/bin/pdf2png.workflow/Contents/QuickLook/Preview.png
--------------------------------------------------------------------------------
/bin/pdf2png.workflow/Contents/document.wflow:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AMApplicationBuild
6 | 444.42
7 | AMApplicationVersion
8 | 2.9
9 | AMDocumentVersion
10 | 2
11 | actions
12 |
13 |
14 | action
15 |
16 | AMAccepts
17 |
18 | Container
19 | List
20 | Optional
21 |
22 | Types
23 |
24 | com.apple.applescript.alias-object.pdf
25 |
26 |
27 | AMActionVersion
28 | 589.12
29 | AMApplication
30 |
31 | PDF
32 |
33 | AMParameterProperties
34 |
35 | colorModel
36 |
37 | compression
38 |
39 | imageFormat
40 |
41 | resolution
42 |
43 | tokenizedValue
44 |
45 | 400
46 |
47 |
48 |
49 | AMProvides
50 |
51 | Container
52 | List
53 | Types
54 |
55 | com.apple.applescript.alias-object.image
56 |
57 |
58 | ActionBundlePath
59 | /System/Library/Automator/Render PDF Pages as Images.action
60 | ActionName
61 | Render PDF Pages as Images
62 | ActionParameters
63 |
64 | colorModel
65 | 0
66 | compression
67 | 1
68 | imageFormat
69 | public.png
70 | resolution
71 | 400
72 |
73 | BundleIdentifier
74 | com.apple.action.imagepdf
75 | CFBundleVersion
76 | 589.12
77 | CanShowSelectedItemsWhenRun
78 |
79 | CanShowWhenRun
80 |
81 | Category
82 |
83 | AMCategoryPDFs
84 |
85 | Class Name
86 | ImagePDFAction
87 | InputUUID
88 | 3978F6BC-A68D-4612-9E9D-9560FC51B3CB
89 | Keywords
90 |
91 | Print
92 | Render
93 |
94 | OutputUUID
95 | C9A6C406-30E0-48F2-BE81-F86E6A7D4A76
96 | UUID
97 | 80993536-0FCD-43D3-AEB0-9517B9A16206
98 | UnlocalizedApplications
99 |
100 | PDF
101 |
102 | arguments
103 |
104 | 0
105 |
106 | default value
107 | 0.5
108 | name
109 | compression
110 | required
111 | 0
112 | type
113 | 0
114 | uuid
115 | 0
116 |
117 | 1
118 |
119 | default value
120 | public.jpeg
121 | name
122 | imageFormat
123 | required
124 | 0
125 | type
126 | 0
127 | uuid
128 | 1
129 |
130 | 2
131 |
132 | default value
133 | 200
134 | name
135 | resolution
136 | required
137 | 0
138 | type
139 | 0
140 | uuid
141 | 2
142 |
143 | 3
144 |
145 | default value
146 | 0
147 | name
148 | colorModel
149 | required
150 | 0
151 | type
152 | 0
153 | uuid
154 | 3
155 |
156 |
157 | conversionLabel
158 | 0
159 | isViewVisible
160 |
161 | location
162 | 309.000000:382.000000
163 | nibPath
164 | /System/Library/Automator/Render PDF Pages as Images.action/Contents/Resources/Base.lproj/main.nib
165 |
166 | isViewVisible
167 |
168 |
169 |
170 | action
171 |
172 | AMAccepts
173 |
174 | Container
175 | List
176 | Optional
177 |
178 | Types
179 |
180 | com.apple.cocoa.path
181 |
182 |
183 | AMActionVersion
184 | v.1.1.2
185 | AMApplication
186 |
187 | Finder
188 |
189 | AMParameterProperties
190 |
191 | replaceExisting
192 |
193 | toDirectory
194 |
195 | isPathPopUp
196 |
197 | selectedVariableUUID
198 | A804FAC2-DC90-4FAF-9AA8-3B7ED8CB937A
199 | variableUUIDsInMenu
200 |
201 | A804FAC2-DC90-4FAF-9AA8-3B7ED8CB937A
202 |
203 |
204 |
205 | AMProvides
206 |
207 | Container
208 | List
209 | Types
210 |
211 | com.apple.cocoa.path
212 |
213 |
214 | ActionBundlePath
215 | /System/Library/Automator/Move Finder Items.action
216 | ActionName
217 | Move Finder Items
218 | ActionParameters
219 |
220 | replaceExisting
221 |
222 | toDirectory
223 |
224 |
225 | BundleIdentifier
226 | com.apple.Automator.MoveFiles
227 | CFBundleVersion
228 | 1.1.2
229 | CanShowSelectedItemsWhenRun
230 |
231 | CanShowWhenRun
232 |
233 | Category
234 |
235 | AMCategoryFilesAndFolders
236 |
237 | Class Name
238 | MoveFilesAction
239 | InputUUID
240 | F8689055-76FA-43C5-AAE7-E730E296EB0B
241 | Keywords
242 |
243 | File
244 | Move
245 |
246 | OutputUUID
247 | 9E8EA431-E839-43D7-8364-D93CECAFF0CC
248 | UUID
249 | A78F0EDA-7F60-430F-AA15-50044916B3BD
250 | UnlocalizedApplications
251 |
252 | Finder
253 |
254 | arguments
255 |
256 | 0
257 |
258 | default value
259 | ~/Desktop
260 | name
261 | toDirectory
262 | required
263 | 0
264 | type
265 | 0
266 | uuid
267 | 0
268 |
269 | 1
270 |
271 | default value
272 |
273 | name
274 | replaceExisting
275 | required
276 | 0
277 | type
278 | 0
279 | uuid
280 | 1
281 |
282 |
283 | conversionLabel
284 | 0
285 | isViewVisible
286 |
287 | location
288 | 309.000000:484.000000
289 | nibPath
290 | /System/Library/Automator/Move Finder Items.action/Contents/Resources/Base.lproj/main.nib
291 |
292 | isViewVisible
293 |
294 |
295 |
296 | connectors
297 |
298 | AA8F705E-64FB-4B02-8B74-64C7CF3F3E29
299 |
300 | from
301 | 80993536-0FCD-43D3-AEB0-9517B9A16206 - 80993536-0FCD-43D3-AEB0-9517B9A16206
302 | to
303 | A78F0EDA-7F60-430F-AA15-50044916B3BD - A78F0EDA-7F60-430F-AA15-50044916B3BD
304 |
305 |
306 | variables
307 |
308 |
309 | UUID
310 | 5D0007BE-6477-47B2-8674-49DD02E60695
311 | identifier
312 | com.apple.Automator.Variable.Path
313 | name
314 | OUTPATH
315 | value
316 | ~/Desktop
317 |
318 |
319 | UUID
320 | CE60B745-943D-477F-AFFE-9782021B1054
321 | identifier
322 | com.apple.Automator.Variable.Path
323 | name
324 | OUTPATH
325 | value
326 | ~/Desktop
327 |
328 |
329 | UUID
330 | A804FAC2-DC90-4FAF-9AA8-3B7ED8CB937A
331 | identifier
332 | com.apple.Automator.Variable.Path
333 | name
334 | OUTPATH
335 | value
336 | ~/Desktop
337 |
338 |
339 | workflowMetaData
340 |
341 | workflowTypeIdentifier
342 | com.apple.Automator.workflow
343 |
344 |
345 |
346 |
--------------------------------------------------------------------------------
/handreichung_opendata.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/handreichung_opendata.pdf
--------------------------------------------------------------------------------
/images/B_RBm_Skzl_Logo_DE_V_PW_RGB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/B_RBm_Skzl_Logo_DE_V_PW_RGB.png
--------------------------------------------------------------------------------
/images/datenrubrik-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datenrubrik-01.png
--------------------------------------------------------------------------------
/images/datenrubrik-dokument-erzeugen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datenrubrik-dokument-erzeugen.png
--------------------------------------------------------------------------------
/images/datenrubrik-hochladen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datenrubrik-hochladen.png
--------------------------------------------------------------------------------
/images/datenrubrik-startseite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datenrubrik-startseite.png
--------------------------------------------------------------------------------
/images/datenrubrik-verlinkung.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datenrubrik-verlinkung.png
--------------------------------------------------------------------------------
/images/datensaetze_vornamen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/datensaetze_vornamen.png
--------------------------------------------------------------------------------
/images/eu_efre_zusatz_unten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/eu_efre_zusatz_unten.png
--------------------------------------------------------------------------------
/images/format-example-tree.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree.pdf
--------------------------------------------------------------------------------
/images/format-example-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree.png
--------------------------------------------------------------------------------
/images/format-example-tree_lor2021.graffle/data.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree_lor2021.graffle/data.plist
--------------------------------------------------------------------------------
/images/format-example-tree_lor2021.graffle/image1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree_lor2021.graffle/image1.pdf
--------------------------------------------------------------------------------
/images/format-example-tree_lor2021.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree_lor2021.pdf
--------------------------------------------------------------------------------
/images/format-example-tree_lor2021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/format-example-tree_lor2021.png
--------------------------------------------------------------------------------
/images/hvd_category_eingabe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/hvd_category_eingabe.png
--------------------------------------------------------------------------------
/images/metadaten_daten.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/metadaten_daten.pdf
--------------------------------------------------------------------------------
/images/metadaten_daten.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/metadaten_daten.png
--------------------------------------------------------------------------------
/images/musterdatensatz_beispiel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/musterdatensatz_beispiel.png
--------------------------------------------------------------------------------
/images/musterdatensatz_datenportal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/musterdatensatz_datenportal.png
--------------------------------------------------------------------------------
/images/musterdatensatz_eingabe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/musterdatensatz_eingabe.png
--------------------------------------------------------------------------------
/images/offene_daten_uebersicht.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/offene_daten_uebersicht.pdf
--------------------------------------------------------------------------------
/images/offene_daten_uebersicht.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/offene_daten_uebersicht.png
--------------------------------------------------------------------------------
/images/opendata-sise-imperia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/opendata-sise-imperia.png
--------------------------------------------------------------------------------
/images/output_datenrubrik.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/output_datenrubrik.pdf
--------------------------------------------------------------------------------
/images/output_datenrubrik.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/output_datenrubrik.png
--------------------------------------------------------------------------------
/images/output_simplesearch.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/output_simplesearch.pdf
--------------------------------------------------------------------------------
/images/output_simplesearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/output_simplesearch.png
--------------------------------------------------------------------------------
/images/schritt-für-schritt.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/schritt-für-schritt.pdf
--------------------------------------------------------------------------------
/images/schritt-für-schritt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/schritt-für-schritt.png
--------------------------------------------------------------------------------
/images/screenshot_dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_dashboard.png
--------------------------------------------------------------------------------
/images/screenshot_einloggen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_einloggen.png
--------------------------------------------------------------------------------
/images/screenshot_follow_category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_follow_category.png
--------------------------------------------------------------------------------
/images/screenshot_menue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_menue.png
--------------------------------------------------------------------------------
/images/screenshot_neuer_datensatz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_neuer_datensatz.png
--------------------------------------------------------------------------------
/images/screenshot_pw_zuruecksetzen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_pw_zuruecksetzen.png
--------------------------------------------------------------------------------
/images/screenshot_pw_zuruecksetzen_anfordern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_pw_zuruecksetzen_anfordern.png
--------------------------------------------------------------------------------
/images/screenshot_ressource_hinzufügen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_ressource_hinzufügen.png
--------------------------------------------------------------------------------
/images/screenshot_user_profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/screenshot_user_profile.png
--------------------------------------------------------------------------------
/images/senod-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/senod-logo.png
--------------------------------------------------------------------------------
/images/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/title.png
--------------------------------------------------------------------------------
/images/vera_musterer_avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/vera_musterer_avatar.png
--------------------------------------------------------------------------------
/images/veroeffentlichungsweg_waehlen.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/veroeffentlichungsweg_waehlen.pdf
--------------------------------------------------------------------------------
/images/veroeffentlichungsweg_waehlen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/veroeffentlichungsweg_waehlen.png
--------------------------------------------------------------------------------
/images/veroeffentlichungsweg_waehlen_90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/veroeffentlichungsweg_waehlen_90.png
--------------------------------------------------------------------------------
/images/xkcd_iso_8601.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/berlinonline/open-data-handbuch/898588c2ab5b7c7a5f4404cc2db7945e24963aa8/images/xkcd_iso_8601.png
--------------------------------------------------------------------------------
/parts/bildverzeichnis.gfm:
--------------------------------------------------------------------------------
1 | - **Karte Titelbild:** © [hebstreit.com](https://hebstreit.com) – [stock.adobe.com](https://stock.adobe.com)
2 |
3 | - **Comic _ISO 8601_:** veröffentlicht unter [Creative Commons Namensnennung-Nicht kommerziell 2.5](https://creativecommons.org/licenses/by-nc/2.5/deed.de) (CC BY-NC 2.5):
4 |
5 | - **Alle nicht einzeln genannten Grafiken und Screenshots:** BerlinOnline GmbH, veröffentlicht unter [Creative Commons Namensnennung 4.0 International](https://creativecommons.org/licenses/by/4.0/deed.de) (CC BY 4.0)
6 |
--------------------------------------------------------------------------------
/parts/bildverzeichnis.pandoc:
--------------------------------------------------------------------------------
1 | **Karte Titelbild:** © [hebstreit.com](https://hebstreit.com) – [stock.adobe.com](https://stock.adobe.com)
2 |
3 | **Abb. \ref{fig:xkcd_iso8601}:** Comic _ISO 8601_, veröffentlicht unter [Creative Commons Namensnennung-Nicht kommerziell 2.5](https://creativecommons.org/licenses/by-nc/2.5/deed.de) (CC BY-NC 2.5):
4 |
5 | **Alle nicht einzeln genannten Grafiken und Screenshots:** BerlinOnline GmbH, veröffentlicht unter [Creative Commons Namensnennung 4.0 International](https://creativecommons.org/licenses/by/4.0/deed.de) (CC BY 4.0)
6 |
--------------------------------------------------------------------------------
/parts/box_prefix.gfm:
--------------------------------------------------------------------------------
1 | {::options parse_block_html="true" /}
2 |
--------------------------------------------------------------------------------
/parts/box_prefix.pandoc:
--------------------------------------------------------------------------------
1 |
2 | ---
3 |
4 |
--------------------------------------------------------------------------------
/parts/box_suffix.gfm:
--------------------------------------------------------------------------------
1 |
2 | {::options parse_block_html="false" /}
--------------------------------------------------------------------------------
/parts/box_suffix.pandoc:
--------------------------------------------------------------------------------
1 |
2 | ---
3 |
4 |
--------------------------------------------------------------------------------
/parts/example_tabular_data.gfm:
--------------------------------------------------------------------------------
1 | | jahr | ausfuhr\_ gewicht\_t | ausfuhr\_ wert\_tsd | einfuhr\_ gewicht\_t | einfuhr\_ wert\_tsd |
2 | | :--- | -------------------: | ------------------: | -------------------: | ------------------: |
3 | | 2008 | 1906249.0 | 11575460 | 3726000.7 | 8836354 |
4 | | 2009 | 1520285.5 | 10460872 | 3280393.0 | 8332920 |
5 | | 2010 | 1768526.6 | 12041296 | 3788885.2 | 9504931 |
6 | | 2011 | 1843390.3 | 12995735 | 3990575.7 | 10247531 |
7 | | 2012 | 1866142.5 | 13630766 | 3386676.5 | 9885480 |
8 | | 2013 | 1812326.6 | 12926404 | 3508760.0 | 9729719 |
9 | | 2014 | 1969493.1 | 13307452 | 4285590.9 | 9910714 |
10 | | 2015 | 2036349.9 | 14077861 | 3539258.2 | 11728684 |
11 | | 2016 | 2463796.3 | 15147156 | 4010693.6 | 12113675 |
12 |
13 | Aus- und Einfuhr (Außenhandel) Berlin
14 |
--------------------------------------------------------------------------------
/parts/example_tabular_data.pandoc:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------
2 | jahr ausfuhr_ ausfuhr_ einfuhr_ einfuhr_
3 | gewicht_t wert_tsd gewicht_t wert_tsd
4 | ----- ------------ ----------- ------------ -----------
5 | 2008 1906249.0 11575460 3726000.7 8836354
6 |
7 | 2009 1520285.5 10460872 3280393.0 8332920
8 |
9 | 2010 1768526.6 12041296 3788885.2 9504931
10 |
11 | 2011 1843390.3 12995735 3990575.7 10247531
12 |
13 | 2012 1866142.5 13630766 3386676.5 9885480
14 |
15 | 2013 1812326.6 12926404 3508760.0 9729719
16 |
17 | 2014 1969493.1 13307452 4285590.9 9910714
18 |
19 | 2015 2036349.9 14077861 3539258.2 11728684
20 |
21 | 2016 2463796.3 15147156 4010693.6 12113675
22 | -------------------------------------------------------
23 |
24 | : Aus- und Einfuhr (Außenhandel) Berlin
25 |
--------------------------------------------------------------------------------
/parts/grafik_veroeffentlichungsweg.gfm:
--------------------------------------------------------------------------------
1 | 
2 |
--------------------------------------------------------------------------------
/parts/grafik_veroeffentlichungsweg.pandoc:
--------------------------------------------------------------------------------
1 | {height=90%}
2 |
--------------------------------------------------------------------------------
/parts/grusswort.md:
--------------------------------------------------------------------------------
1 | # Grußwort {-}
2 |
3 | Open Data bedeutet, dass Daten zur freien Verwendung geöffnet, also zugänglich gemacht werden.
4 | Die Berliner Verwaltung verfügt über enorme Datenbestände.
5 | Viele dieser Daten sind von öffentlichem Interesse, nützlich und müssen nicht besonders geschützt werden.
6 | Sie können dabei helfen, die Stadt besser zu verstehen, neue Dienste für Bürger\*innen zu entwickeln und Geschäftsideen zu initiieren.
7 | Zahlreiche Studien haben in den letzten Jahren die großen Potenziale offener Verwaltungsdaten für Gesellschaft und Wirtschaft beleuchtet.
8 | Diese Potenziale wollen wir noch stärker nutzen.
9 |
10 | Mit diesem Handbuch wollen wir der Berliner Verwaltung und allen Interessierten eine Anleitung für Veröffentlichungsmöglichkeiten von Informationen auf dem Berliner Datenportal [daten.berlin.de](https://daten.berlin.de) an die Hand geben.
11 | Sie erhalten nützliche Tipps dazu, welche Daten Sie wie veröffentlichen, und aus welchen verschiedenen Dateiformaten Sie dabei wählen können.
12 |
13 | Ich würde mich freuen, wenn Sie das Open-Data-Handbuch intensiv nutzen, um sich zu informieren und um ins Öffnen von Daten einzusteigen.
14 |
15 | **Christian Rickerts**
16 |
17 | Staatssekretär in der Senatsverwaltung für Wirtschaft, Energie und Betriebe
18 |
19 |
--------------------------------------------------------------------------------
/parts/latex_impressum.template.md:
--------------------------------------------------------------------------------
1 |
2 | # Impressum {-}
3 |
4 | **Herausgeber:** Der Regierende Bürgermeister von Berlin, [Senatskanzlei](https://www.berlin.de/rbmskzl/)
5 | **Text:** Knud Hinnerk Möller ([BerlinOnline GmbH](https://www.berlinonline.net))
6 | **Grafiken:** Nadine Wohlfahrt ([BerlinOnline GmbH](https://www.berlinonline.net))
7 | **Lizenz**: Der Text des Handbuchs ist unter einer [Creative Commons Namensnennung 4.0 International Lizenz](https://creativecommons.org/licenses/by/4.0/deed.de) (CC BY 4.0) veröffentlicht.
8 | Bilder und andere Elemente, deren Urheberrecht bei Dritten liegen, sind ausgenommen.
9 | [Quellenverzeichnis](#quellenverzeichnis) und [Bildverzeichnis](#bildverzeichnis) mit entsprechenden Urheberrechtsangaben sind im Handbuch enthalten.
10 | **Quelle**: Der Quelltext für das Handbuch befindet sich in folgendem Repository:
.
11 | Dort können über die _[Issue](https://github.com/berlinonline/open-data-handbuch/issues)_-Funktion auch Anregungen gemacht oder Fehler gemeldet werden (github-Account erforderlich).
12 | Wer mag, kann auch gleich einen Pull Request stellen!
13 | **Stand**: @include(date) ([2.0.1](https://github.com/berlinonline/open-data-handbuch/blob/master/CHANGELOG.md))
14 |
15 | {width=120px}\
16 |
17 |
--------------------------------------------------------------------------------
/parts/latex_preamble.md:
--------------------------------------------------------------------------------
1 | \pagenumbering{arabic}
2 | \setcounter{page}{1}
3 |
4 |
--------------------------------------------------------------------------------
/parts/pages_impressum.template.md:
--------------------------------------------------------------------------------
1 |
2 | # Impressum {-}
3 |
4 | **Herausgeber:** Der Regierende Bürgermeister von Berlin, [Senatskanzlei](https://www.berlin.de/rbmskzl/)
5 | **Text:** Knud Hinnerk Möller ([BerlinOnline GmbH](https://www.berlinonline.net))
6 | **Grafiken:** Nadine Wohlfahrt ([BerlinOnline GmbH](https://www.berlinonline.net))
7 | **Lizenz**: Der Text des Handbuchs ist unter einer [Creative Commons Namensnennung 4.0 International Lizenz](https://creativecommons.org/licenses/by/4.0/deed.de) (CC BY 4.0) veröffentlicht.
8 | Bilder und andere Elemente, deren Urheberrecht bei Dritten liegen, sind ausgenommen.
9 | [Quellenverzeichnis](#quellenverzeichnis) und [Bildverzeichnis](#bildverzeichnis) mit entsprechenden Urheberrechtsangaben sind im Handbuch enthalten.
10 | **Quelle**: Der Quelltext für das Handbuch befindet sich in folgendem Repository: .
11 | Dort können über die _[Issue](https://github.com/berlinonline/open-data-handbuch/issues)_-Funktion auch Anregungen gemacht oder Fehler gemeldet werden (github-Account erforderlich).
12 | Wer mag, kann auch gleich einen Pull Request stellen!
13 | **Stand**: @include(date) ([2.0.1](https://github.com/berlinonline/open-data-handbuch/blob/master/CHANGELOG.md#201))
14 |
15 | ---
16 |
17 | {:width="240px"}
18 |
19 |
--------------------------------------------------------------------------------
/parts/pages_title.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 |
--------------------------------------------------------------------------------
/parts/simplesearch-api.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: SimpleSearch API
3 | path: /simplesearch-api
4 | ---
5 |
6 | [SimpleSearch-Anwendungen](https://support.berlin.de/wiki/SimpleSearch) machen einen tabellarischen Datenbestand (die „SimpleSearch-Tabelle“) auf einer Webseite durchsuchbar.
7 | Dabei bildet jede Zeile der Tabelle einen Eintrag bzw. ein Datenobjekt ab, während die Spalten der Tabelle die verschiedenen Eigenschaften der Objekte definieren.
8 |
9 | So sind z.B. in der SimpleSearch-Anwendung [Liste der Badestellen](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/) die Datenobjekte (also Zeilen) die einzelnen Badestellen.
10 | Eigenschaften wie Name, Ort, Wasserqualität etc. werden über die Spalten abgebildet.
11 |
12 | id | badname | bezirk | cb | eco | ente | sicht | temp | profil | …
13 | -- | ------- | ------ | -- | --- | ---- | ----- | ---- | ------ | ---
14 | … | … | … | … | … | … | … | … | … | …
15 | 48 | Heiligensee, Freibad | Reinickendorf | <300 | 30 | 390 | 150 | 22,1 | Heiligensee | …
16 | 51 | Jungfernheide, Freibad | Charlottenburg-Wilmersdorf | <300 | 61 | 30 | >180 | 20,8 | Jungfernheideteich | …
17 | 54 | Kleine Badewiese | Spandau | <300 | <15 | <15 | >50 | 21,1 | Unterhavel | …
18 | … | … | … | … | … | … | … | … | … | …
19 |
20 | Typische Bestandteile einer SimpleSearch-Anwendung sind das Suchformular, Detailseiten, Karten etc.
21 | Jede SimpleSearch-Anwendung verfügt außerdem über eine einfache REST-API.
22 | Damit kann der Datenbestand in verschiedenen strukturierten, maschinenlesbaren Formaten abgefragt werden.
23 |
24 | Wie Anfragen bzw. Requests an die API einer SimpleSearch-Anwendung fomuliert werden, wird in der folgenden Dokumentation beschrieben.
25 |
26 | ## Anfrage / Request
27 |
28 | ### URLs
29 |
30 | #### `BASE_URL`
31 |
32 | Um die API einer beliebigen SimpleSearch-Anwendung zu nutzen, braucht man zunächst die URL ihrer Startseite (`BASE_URL`).
33 | Für das Beispiel der Liste der Badestellen ist die `BASE_URL` also:
34 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/)
35 |
36 | #### `API_ENDPOINT`
37 |
38 | Aus der `BASE_URL` ergibt sich der `API_ENDPOINT` durch Anhängen von `index.php`: `${BASE_URL}/index.php`.
39 | Der API-Endpunkt ist der Einstieg für alle API-Anfragen.
40 | Für das Beispiel ist der `API-ENDPOINT`:
41 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php)
42 |
43 |
44 | #### Dokumentation
45 |
46 | Ausgehend vom `API_ENDPOINT` kann man eine detaillierte Dokumentation spezifisch für jede SimpleSearch-Anwendung aufrufen. Dies geschieht nach dem Muster `${API_ENDPOINT}/api`.
47 | Für die Badestellen-SimpleSearch wird die API-Dokumentation also über folgenden Link erreicht:
48 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api)
49 |
50 | Insbesondere für die veränderlichen Teile einer SimpleSearch-Anwendung – welche Spalten/Felder sind in der SimpleSearch-Tabelle enthalten – ist die Dokumentation hilfreich.
51 | Die Felder der Tabelle können aber auch explorativ in der Anwendung selbst ermittelt werden.
52 | Dazu geht man wie folgt vor:
53 |
54 | 1. Rufen Sie die Anwendung, für die Sie sich interessieren, in Ihrem Browser auf, z.B. die [Liste der Badestellen](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen).
55 | 1. Stellen Sie eine Anfrage über das Suchformular.
56 | 1. Die URL der Ergebnisseite enthält die möglichen URL-Parameter für die verschiedene Felder der SimpleSearch-Tabelle.
57 |
58 | #### Übersicht URLs
59 |
60 | Was | Muster | Beispiel
61 | ---------|----------|---------
62 | `BASE_URL` | (URL der Anwendung) | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/)
63 | `API_ENDPOINT` | `${BASE_URL}/index.php` | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php)
64 | API-Dokumentation | `${API_ENDPOINT}/api` | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api)
65 |
66 | ### Methoden
67 |
68 | Alle SimpleSearch-Anwendungen erlauben über ihre API Suchanfragen mit der Methode [`index`](#index).
69 | Zusätzlich können die Redakteur\*innen Detailansichten freischalten, die dann über die Methode [`detail`](#detail) abrufbar sind.
70 | Beide Methoden bieten Ausgaben in verschiedenen Formaten, wobei das Default-Format jeweils HTML ist.
71 | Die HTML-Ausgaben sind vollständige HTML-Dokumente mit Header, Footer etc. im aktuellen berlin.de-Layout, und daher nur bedingt für externe Nutzer*innen sinnvoll einsetzbar.
72 |
73 | #### `index`
74 |
75 | Mit der `index`-Methode kann man eine Suchabfrage über den Datenbestand einer SimpleSearch-Anwendung durchführen und das Ergebnis im gewünschten Format erhalten.
76 | Die Rückgabe erfolgt dabei entweder aufgeteilt in Seiten (paginiert) oder komplett (wenn möglich).
77 | Die Struktur eines `index`-Aufrufs ist wie folgt:
78 |
79 | ```bash
80 | ${API_ENDPOINT}/index/${PAGINATION_MODE}[.${FORMAT}]?${QUERY_STRING}
81 | ```
82 |
83 | ##### `PAGINATION_MODE`
84 |
85 | `index` \| `all`
86 |
87 | `PAGINATION_MODE` ist entweder `index` für die seitenweise Ausgabe der Ergebnisse, oder `all`, um den gesamten Datenbestand auf ein Mal anzufordern.
88 | `all` funktioniert nur, wenn der Datenbestand nicht zu groß ist.
89 | Ansonsten wird die Fehlermeldung _"ERROR - Zu viele Daten, bitte benutzen Sie die Blätter-Funktion"_ zurückgegeben (der genaue Kontext der Fehlermeldung hängt vom Ausgabeformat ab).
90 | In diesem Fall muss der `index`-Modus genutzt werden.
91 |
92 | ##### `FORMAT`
93 |
94 | Jede SimpleSearch-Anwendung kann über die `index`-Methode folgende Formate exportieren:
95 |
96 | | [JSON](#json-format-index) | `.json` |
97 | | [XML](#xml-format-index) | `.xml` |
98 | | [CSV](#csv-format-index) | `.csv` |
99 | | [RSS](#rss-format-index) | `.rss` |
100 | | [JSON-RSS](#json-rss-format-index) | `.jrss` |
101 | | HTML (default) | `.html` |
102 |
103 | SimpleSearch-Anwendungen mit Geo-Daten und aktivierter Karte können zusätzlich folgende Geo-Formate zurückgeben:
104 |
105 | | [GeoJSON](#geojson-format-index) | `.geojson` |
106 | | [KML](#kml-format-index) | `.kml` |
107 |
108 |
109 | ##### `QUERY_STRING`
110 |
111 | Über den Query-String kann die Abfrage eingeschränkt oder anders manipuliert werden.
112 | Die folgenden Query-Parameter werden von allen SimpleSearch-Anwendungen angeboten:
113 |
114 | | Parameter | Beschreibung | Beispiel |
115 | | `q` | Ermöglicht eine Volltextsuche über bestimmte Felder des Datenbestands. Welche Felder genau von der Volltextsuche erfasst werden, muss in der API-Dokumentation der jeweiligen Anwendung nachgesehen werden. Default ist `q=`. | `q=`, `q=see`|
116 | | `page` | Gibt an, welche Seite der paginierten Ausgabe gewünscht ist. Nur sinnvoll im Kombination mit `PAGINATION_MODE` `index`. Default ist `page=1`. | `page=2` |
117 | | `order` | Gibt an, welche Felder für die Sortierung der Ergebnisse genutzt weden sollen. Der Zusatz von `ASC`ending und `DESC`ending ist möglich. Welche Felder möglich sind, muss in der API-Dokumentation der jeweiligen Anwendung nachgesehen werden. Default ist `order=id+ASC`. | `order=bezirk`, `order=bezirk+DESC,badname+ASC` |
118 |
119 | SimpleSearch-Anwendungen mit Geo-Koordinaten bieten außerdem die Möglichkeit, über `q_geo` und `q_radius` eine adressbasierte Suche durchzuführen.
120 |
121 | Zudem werden i.d.R. auch die weiteren Spalten bzw. Felder der SimpleSearch-Tabelle als Query-Parameter zu nutzen (z.B. `?bezirk=Spandau`).
122 | Welche zusätzlichen Parameter verfügbar sind, lässt sich in der API-Dokumentation der jeweiligen Anwendung nachlesen.
123 |
124 | #### `detail`
125 |
126 | Mit der `detail`-Methode kann man (wenn ihre Nutzung freigeschaltet wurde) einzelne Einträge des Datenbestandes aufrufen.
127 |
128 | ```bash
129 | ${API_ENDPOINT}/detail/${ITEM_ID}[.${FORMAT}]
130 | ```
131 |
132 | Ein Beispiel für den Aufruf der `detail`-Methode ist:
133 |
134 |
135 | ##### `ITEM_ID`
136 |
137 | Referenz auf die `id`-Spalte der SimpleSearch-Tabelle, die als eindeutiger Identifier dient.
138 |
139 | ##### `FORMAT`
140 |
141 | Jede SimpleSearch-Anwendung kann über die `detail`-Methode folgende Formate exportieren:
142 |
143 | | [JSON](#json-format-detail) | `.json` |
144 | | [XML](#xml-format-detail) | `.xml` |
145 |
146 |
147 | ### Einschränkung
148 |
149 | Bitte beachten Sie, dass die REST-APIs an der SimpleSearch keine Hochleistungs-APIs sind. Wir bitten also um Caching.
150 |
151 | ## Rückgabe / Response
152 |
153 | ### Allgemeine Struktur
154 |
155 | Die JSON- und XML-Rückgabeformate haben grundsätzlich diesselbe Struktur:
156 |
157 | * `messages`:
158 | * `messages`: Eine Liste von Meldungen. Bei erfolgreicher Ausführung leer.
159 | * `success`: Boolean mit Status der Ausführung. Bei `false` ist ein Fehler aufgetreten.
160 | * `results`:
161 | * `count`: Anzahl der Gesamtergebnisse
162 | * `items_per_page`: Anzahl der Einträge pro Seite
163 | * `index`: Liste mit Ergebnissen, wenn die `index`-Methode genutzt wurde.
164 | * Ergebnis 1: Jedes Ergebnis ist ein Objekt mit Attribut-Wert-Paaren.
165 | Es ist immer mindestens ein `id`-Attribut vorhanden, über das die Objekte in der Datenbank der Anwendung fortlaufend durchnummeriert sind. Das `id`-Attribut wird von der SimpleSearch-Anwendung automatisch vergeben und ist nicht unter der Kontrolle der veröffentlichenden Stelle.
166 | Die übrigen Attribute ergeben sich aus der jeweiligen SimpleSearch-Anwendung und müssen dort in Erfahrung gebracht werden.
167 | * Ergebnis 2
168 | * Ergebnis 3
169 | * ...
170 | * `item`: Objekt mit den Daten eines einzelnen Eintrags, wenn die `detail`-Methode genutzt wurde.
171 |
172 | ### JSON-Format (index)
173 |
174 | **Request-URI** | `${API_ENDPOINT}/index/index.json?${QUERY_STRING}`
175 | **Response content-type** | `application/json; charset=UTF-8`
176 |
177 | Das von SimpleSearch über die API ausgelieferte JSON folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
178 |
179 | Konkret sieht die JSON-Struktur am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
180 |
181 | ```json
182 | {
183 | "messages": {
184 | "messages": [],
185 | "success": null
186 | },
187 | "results": {
188 | "count": 15805,
189 | "items_per_page": 20
190 | },
191 | "index": [
192 | {
193 | "id": 37658,
194 | "teilaktenplan": "TLSD - Tarifreferat Lohnsteuer/Sozialversicherung/Diverses",
195 | "aktenplannummer": "Beschaffungsmaßnahmen zur Errichtung von Schießständen für die Zollverwaltung",
196 | "aktentitel": "Wehrpflicht",
197 | "aufbewahrungsfrist_jahre": "10"
198 | },
199 | {
200 | "id": 2,
201 | "teilaktenplan": "BT - Beteiligungen des Landes Berlin",
202 | "aktenplannummer": "BT",
203 | "aktentitel": "Beteiligungen des Landes Berlin",
204 | "aufbewahrungsfrist_jahre": "10"
205 | },
206 | {
207 | "id": 5,
208 | "teilaktenplan": "BT - Beteiligungen des Landes Berlin",
209 | "aktenplannummer": "BT 0",
210 | "aktentitel": "Verwaltung von Beteiligungen",
211 | "aufbewahrungsfrist_jahre": "10"
212 | },
213 | ...
214 | ],
215 | "item": []
216 | }
217 | ```
218 |
219 | ### XML-Format (index)
220 |
221 | **Request-URI** | `${API_ENDPOINT}/index/index.xml?${QUERY_STRING}`
222 | **Response content-type** | `text/xml; charset=UTF-8`
223 |
224 | Das von SimpleSearch über die API ausgelieferte XML folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
225 |
226 | Konkret sieht die XML-Struktur am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
227 |
228 | ```xml
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | 15805
237 | 20
238 |
239 |
240 | -
241 | 37658
242 |
243 |
244 |
245 | 10
246 |
247 | -
248 | 2
249 |
250 |
251 |
252 | 10
253 |
254 | -
255 | 5
256 |
257 |
258 |
259 | 10
260 |
261 |
262 |
263 |
264 |
265 | ```
266 |
267 | ### CSV-Format (index)
268 |
269 |
270 | **Request-URI** | `${API_ENDPOINT}/index/index.csv?${QUERY_STRING}`
271 | **Response content-type** | `application/csv`
272 |
273 | Das CSV-Format gibt die Ergebnisse der Anfrage als `;`-separiertes CSV zurück.
274 |
275 | Konkret sieht die CSV-Rückgabe am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
276 |
277 | ```csv
278 | id;teilaktenplan;aktenplannummer;aktentitel;aufbewahrungsfrist_jahre
279 | 37658;"TLSD - Tarifreferat Lohnsteuer/Sozialversicherung/Diverses";"Beschaffungsmaßnahmen zur Errichtung von Schießständen für die Zollverwaltung";Wehrpflicht;10
280 | 2;"BT - Beteiligungen des Landes Berlin";BT;"Beteiligungen des Landes Berlin";10
281 | 5;"BT - Beteiligungen des Landes Berlin";"BT 0";"Verwaltung von Beteiligungen";10
282 | ...
283 | ```
284 |
285 | Die Rückgabe besteht aus einer Header-Zeile sowie den Ergebniszeilen.
286 | Auch hier ist wieder mindestens die Spalte `id` enthalten, alle anderen Spalten ergeben sich aus der jeweiligen SimpleSearch-Anwendung und müssen dort in Erfahrung gebracht werden.
287 |
288 | ### RSS-Format (index)
289 |
290 | **Request-URI** | `${API_ENDPOINT}/index/index.rss?${QUERY_STRING}`
291 | **Response content-type** | `text/xml; charset=UTF-8`
292 |
293 | Die SimpleSearch-API bietet auch einen Feed im [RSS 2.0](https://www.rssboard.org/rss-specification)-Format an.
294 |
295 | Die konkrete Rückgabe sieht am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
296 |
297 | ```xml
298 |
299 |
300 |
301 | Aktenplan der Senatsverwaltung für Finanzen
302 | Ein Aktenplan ist die Regelung der systematischen Ordnung des gesamten Schriftgutes einer Verwaltung. Ziel des Aktenplanes ist die übersichtliche, nachvollziehbare und wirtschaftliche Ordnung des Schriftgutes.
Dieser Aktenplan basiert auf der Grundlage des Aktenplans für die Finanzverwaltung. Es wurden themenspezifische Teilaktenpläne ergänzt.
303 | https://www.berlin.de/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php
304 | <a href="aktenplan@senfin.berlin.de" >aktenplan@senfin.berlin.de</a> (Berlin.de - Aktenplan der Senatsverwaltung für Finanzen)
305 | de
306 |
307 |
308 | 20
309 | 1
310 |
311 | 15805
312 | -
313 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47414
314 | 47414
315 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47414&q=
316 |
318 |
319 | -
320 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47411
321 | 47411
322 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47411&q=
323 |
325 |
326 | -
327 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47408
328 | 47408
329 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47408&q=
330 |
332 |
333 |
334 |
335 |
336 | ```
337 |
338 | ### JSON-RSS-Format (index)
339 |
340 | **Request-URI** | `${API_ENDPOINT}/index/index.jrss?${QUERY_STRING}`
341 | **Response content-type** | `application/rss+json; charset=UTF-8`
342 |
343 | Alternativ zum XML-basierten [RSS-Format](#rss-format) bietet die SimpleSearch-API auch einen JSON-basierten Feed.
344 |
345 | Die konkrete JSON-Rückgabe sieht am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
346 |
347 | ```json
348 | {
349 | "version": "2.0",
350 | "channel": {
351 | "title": "Aktenplan der Senatsverwaltung für Finanzen",
352 | "link": "https://www.berlin.de/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php",
353 | "description": "Ein Aktenplan ist die Regelung der systematischen Ordnung des gesamten Schriftgutes einer Verwaltung. Ziel des Aktenplanes ist die übersichtliche, nachvollziehbare und wirtschaftliche Ordnung des Schriftgutes.\n\nDieser Aktenplan basiert auf der Grundlage des Aktenplans für die Finanzverwaltung. Es wurden themenspezifische Teilaktenpläne ergänzt.",
354 | "managingEditor": "aktenplan@senfin.berlin.de (Berlin.de - Aktenplan der Senatsverwaltung für Finanzen)",
355 | "language": "de",
356 | "items": [
357 | {
358 | "title": 47414,
359 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47414&q=",
360 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47414"
361 | },
362 | {
363 | "title": 47411,
364 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47411&q=",
365 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47411"
366 | },
367 | {
368 | "title": 47408,
369 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47408&q=",
370 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47408"
371 | },
372 | ...
373 | ]
374 | }
375 | }
376 | ```
377 |
378 | ### GeoJSON-Format (index)
379 |
380 | **Request-URI** | `${API_ENDPOINT}/index/index.geojson?${QUERY_STRING}`
381 | **Response content-type** | `application/geo+json; charset=UTF-8`
382 |
383 | Wenn die Einträge einer SimpleSearch-Anwendung Geokoordinaten enthalten und die Kartendarstellung in der Anwendung aktiviert ist, bietet die SimpleSearch-API die Daten auch im [GeoJSON](https://geojson.org)-Format.
384 |
385 | Die konkrete JSON-Rückgabe sieht am Beispiel der [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) folgendermaßen aus:
386 |
387 | ```json
388 | {
389 | "type": "FeatureCollection",
390 | "features": [
391 | {
392 | "type": "Feature",
393 | "geometry": {
394 | "type": "Point",
395 | "coordinates": [
396 | 13.14228,
397 | 52.43271
398 | ]
399 | },
400 | "properties": {
401 | "title": "Alter Hof / Unterhavel",
402 | "href": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/3",
403 | "description": "
Steglitz-Zehlendorf
Mehr...",
404 | "id": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/3",
405 | "data": {
406 | "id": 3,
407 | "prognoselink": "",
408 | "farbe": "gruen_a.jpg",
409 | "badestellelink": "\"Alter Hof(Link zur Badestelle Alter Hof)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344360.php",
410 | "badname": "Alter Hof",
411 | "bezirk": "Steglitz-Zehlendorf",
412 | "dat": "2023-09-12",
413 | "eco": "<15",
414 | "ente": "<15",
415 | "sicht": "50",
416 | "temp": "23,8",
417 | "profillink": "\"Unterhavel - Alter Hof(Link zum Badegewässerprofil Unterhavel Alter Hof)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339134.php",
418 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad29.pdf",
419 | "dat_predict": ""
420 | }
421 | }
422 | },
423 | {
424 | "type": "Feature",
425 | "geometry": {
426 | "type": "Point",
427 | "coordinates": [
428 | 13.62254,
429 | 52.4075
430 | ]
431 | },
432 | "properties": {
433 | "title": "Bammelecke",
434 | "href": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/6",
435 | "description": "
Treptow-Köpenick
Mehr...",
436 | "id": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/6",
437 | "data": {
438 | "id": 6,
439 | "prognoselink": "",
440 | "farbe": "gruen_a.jpg",
441 | "badestellelink": "\"Bammelecke(Link zur Badestelle Bammelecke)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344320.php",
442 | "badname": "Bammelecke",
443 | "bezirk": "Treptow-Köpenick",
444 | "dat": "2023-09-06",
445 | "eco": "<15",
446 | "ente": "<15",
447 | "sicht": "60",
448 | "temp": "",
449 | "profillink": "\"Dahme - Bammelecke(Link zum Badegewässerprofil Bammelecke)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339118.php",
450 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad1.pdf",
451 | "dat_predict": ""
452 | }
453 | }
454 | },
455 | ...
456 | ]
457 | }
458 | ```
459 |
460 | Jeder Eintrag der SimpleSearch-Tabelle wird als ein `Feature` abgebildet.
461 | Jedes `Feature` hat Koordinaten und `properties`.
462 | Die `properties` wiederum enthalten ein `data`-Objekt, das die Attribute der ursprünglichen SimpleSearch-Tabelle enthält.
463 | Auch hier kann wieder mindestens das `id`-Attribut vorrausgesetzt werden, alle andere Attribute müssen der SimpleSearch-Anwendung entnommen werden.
464 |
465 | ### KML-Format (index)
466 |
467 | **Request-URI** | `${API_ENDPOINT}/index/index.kml?${QUERY_STRING}`
468 | **Response content-type** | application/vnd.google-earth.kml; charset=UTF-8
469 |
470 | Als alternatives Geodatenformat bietet die SimpleSearch-API auch einen Export im [KML-Format](http://www.opengeospatial.org/standards/kml/).
471 |
472 | Ausgehend vom Beispiel der [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht die XML-Ausgabe der SimpleSearch-API folgendermaßen aus:
473 |
474 | ```xml
475 |
476 |
477 |
478 | Liste der Badestellen
479 | Hilfe
480 |
481 | Mit der Stichwortsuche können Sie nach den folgenden Informationen suchen: “Badestelle”, “Bezirk” und “Badegewässerprofil”.
482 |
483 | Die Freitextsuche findet alle Einträge, die eines der gesuchten Wörter enthalten. Um nach einer genauen Wortgruppe zu suchen, schreiben Sie diese in doppelte Anführungszeichen “”.
484 |
485 | Geben Sie einen Straßennamen ein, so werden Ihnen alle Standorte in der Nähe angezeigt. In der Liste werden die Treffer nach der Entfernung zur jeweiligen Straße sortiert.
486 |
487 | Es reicht die Eingabe eines Begriffes in eines der Auswahlfelder um ein Ergebnis zu erhalten. Bitte danach auf den Button “Suchen” drücken.
488 |
489 | Alter Hof / Unterhavel
490 | Steglitz-Zehlendorf
Mehr... ]]>
492 |
493 | 13.14228,52.43271,0
494 |
495 |
496 |
497 | Bammelecke
498 | Treptow-Köpenick
Mehr... ]]>
500 |
501 | 13.62254,52.4075,0
502 |
503 |
504 |
505 |
506 |
507 | ```
508 |
509 | Die KML-Ausgabe ist deutlich einfacher als die GeoJSON-Ausgabe und enthält für jeden Eintrag der SimpleSearch-Tabelle lediglich den Namen, die Koordinaten und einen Beschreibungstext (in diesem Fall HTML-Code mit einem Bild und einem Link).
510 |
511 | ### JSON-Format (detail)
512 |
513 | **Request-URI** | `${API_ENDPOINT}/detail/${ITEM_ID}.json`
514 | **Response content-type** | `application/json; charset=UTF-8`
515 |
516 | Das von SimpleSearch über die API ausgelieferte JSON folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
517 |
518 | Eine Beispielausgabe für die [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht folgendermaßen aus:
519 |
520 | ```json
521 | {
522 | "messages": {
523 | "messages": [],
524 | "success": null
525 | },
526 | "results": {
527 | "count": 0,
528 | "items_per_page": 20
529 | },
530 | "index": [],
531 | "item": {
532 | "id": 33,
533 | "prognoselink": "",
534 | "farbe": "gelb_a.jpg",
535 | "badestellelink": "\"Große Krampe(Link zur Badestelle Große Krampe)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344326.php",
536 | "bezirk": "Treptow-Köpenick",
537 | "dat": "2023-09-06",
538 | "eco": "<15",
539 | "ente": "<15",
540 | "sicht": "40",
541 | "temp": "21,9",
542 | "profillink": "\"Dahme - Große Krampe(Link zum Badegewässerprofil Große Krampe)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339117.php",
543 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad8.pdf",
544 | "dat_predict": ""
545 | }
546 | }
547 | ```
548 |
549 | Bei allen SimpleSearch-Anwendungen kann man im `item`-Objekt das `id`-Attribut voraussetzen.
550 | Alle anderen Attribute sind abhängig von der jeweiligen Anwendung und müssen in deren API-Dokumentation nachgelesen werden.
551 |
552 | ### XML-Format (detail)
553 |
554 | **Request-URI** | `${API_ENDPOINT}/detail/${ITEM_ID}.xml`
555 | **Response content-type** | `text/xml; charset=UTF-8`
556 |
557 | Das von SimpleSearch über die API ausgelieferte XML folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
558 |
559 | Eine Beispielausgabe für die [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht folgendermaßen aus:
560 |
561 | ```xml
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 | 0
570 | 20
571 |
572 |
573 | -
574 | 33
575 |
576 |
577 |
578 |
579 | 2023-09-06
580 |
581 |
582 | 40
583 |
584 |
585 |
586 |
587 |
588 |
589 | ```
590 |
591 | Bei allen SimpleSearch-Anwendungen kann man in `/xml/item` das `id`-Element voraussetzen.
592 | Alle anderen Elemente sind abhängig von der jeweiligen Anwendung und müssen in deren API-Dokumentation nachgelesen werden.
593 |
594 |
--------------------------------------------------------------------------------
/simplesearch-api/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: SimpleSearch API
3 | path: /simplesearch-api
4 | ---
5 |
6 | [SimpleSearch-Anwendungen](https://support.berlin.de/wiki/SimpleSearch) machen einen tabellarischen Datenbestand (die „SimpleSearch-Tabelle“) auf einer Webseite durchsuchbar.
7 | Dabei bildet jede Zeile der Tabelle einen Eintrag bzw. ein Datenobjekt ab, während die Spalten der Tabelle die verschiedenen Eigenschaften der Objekte definieren.
8 |
9 | So sind z.B. in der SimpleSearch-Anwendung [Liste der Badestellen](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/) die Datenobjekte (also Zeilen) die einzelnen Badestellen.
10 | Eigenschaften wie Name, Ort, Wasserqualität etc. werden über die Spalten abgebildet.
11 |
12 | id | badname | bezirk | cb | eco | ente | sicht | temp | profil | …
13 | -- | ------- | ------ | -- | --- | ---- | ----- | ---- | ------ | ---
14 | … | … | … | … | … | … | … | … | … | …
15 | 48 | Heiligensee, Freibad | Reinickendorf | <300 | 30 | 390 | 150 | 22,1 | Heiligensee | …
16 | 51 | Jungfernheide, Freibad | Charlottenburg-Wilmersdorf | <300 | 61 | 30 | >180 | 20,8 | Jungfernheideteich | …
17 | 54 | Kleine Badewiese | Spandau | <300 | <15 | <15 | >50 | 21,1 | Unterhavel | …
18 | … | … | … | … | … | … | … | … | … | …
19 |
20 | Typische Bestandteile einer SimpleSearch-Anwendung sind das Suchformular, Detailseiten, Karten etc.
21 | Jede SimpleSearch-Anwendung verfügt außerdem über eine einfache REST-API.
22 | Damit kann der Datenbestand in verschiedenen strukturierten, maschinenlesbaren Formaten abgefragt werden.
23 |
24 | Wie Anfragen bzw. Requests an die API einer SimpleSearch-Anwendung fomuliert werden, wird in der folgenden Dokumentation beschrieben.
25 |
26 | ## Anfrage / Request
27 |
28 | ### URLs
29 |
30 | #### `BASE_URL`
31 |
32 | Um die API einer beliebigen SimpleSearch-Anwendung zu nutzen, braucht man zunächst die URL ihrer Startseite (`BASE_URL`).
33 | Für das Beispiel der Liste der Badestellen ist die `BASE_URL` also:
34 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/)
35 |
36 | #### `API_ENDPOINT`
37 |
38 | Aus der `BASE_URL` ergibt sich der `API_ENDPOINT` durch Anhängen von `index.php`: `${BASE_URL}/index.php`.
39 | Der API-Endpunkt ist der Einstieg für alle API-Anfragen.
40 | Für das Beispiel ist der `API-ENDPOINT`:
41 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php)
42 |
43 |
44 | #### Dokumentation
45 |
46 | Ausgehend vom `API_ENDPOINT` kann man eine detaillierte Dokumentation spezifisch für jede SimpleSearch-Anwendung aufrufen. Dies geschieht nach dem Muster `${API_ENDPOINT}/api`.
47 | Für die Badestellen-SimpleSearch wird die API-Dokumentation also über folgenden Link erreicht:
48 | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api)
49 |
50 | Insbesondere für die veränderlichen Teile einer SimpleSearch-Anwendung – welche Spalten/Felder sind in der SimpleSearch-Tabelle enthalten – ist die Dokumentation hilfreich.
51 | Die Felder der Tabelle können aber auch explorativ in der Anwendung selbst ermittelt werden.
52 | Dazu geht man wie folgt vor:
53 |
54 | 1. Rufen Sie die Anwendung, für die Sie sich interessieren, in Ihrem Browser auf, z.B. die [Liste der Badestellen](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen).
55 | 1. Stellen Sie eine Anfrage über das Suchformular.
56 | 1. Die URL der Ergebnisseite enthält die möglichen URL-Parameter für die verschiedene Felder der SimpleSearch-Tabelle.
57 |
58 | #### Übersicht URLs
59 |
60 | Was | Muster | Beispiel
61 | ---------|----------|---------
62 | `BASE_URL` | (URL der Anwendung) | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/)
63 | `API_ENDPOINT` | `${BASE_URL}/index.php` | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php)
64 | API-Dokumentation | `${API_ENDPOINT}/api` | [https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api](https://www.berlin.de/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/api)
65 |
66 | ### Methoden
67 |
68 | Alle SimpleSearch-Anwendungen erlauben über ihre API Suchanfragen mit der Methode [`index`](#index).
69 | Zusätzlich können die Redakteur\*innen Detailansichten freischalten, die dann über die Methode [`detail`](#detail) abrufbar sind.
70 | Beide Methoden bieten Ausgaben in verschiedenen Formaten, wobei das Default-Format jeweils HTML ist.
71 | Die HTML-Ausgaben sind vollständige HTML-Dokumente mit Header, Footer etc. im aktuellen berlin.de-Layout, und daher nur bedingt für externe Nutzer*innen sinnvoll einsetzbar.
72 |
73 | #### `index`
74 |
75 | Mit der `index`-Methode kann man eine Suchabfrage über den Datenbestand einer SimpleSearch-Anwendung durchführen und das Ergebnis im gewünschten Format erhalten.
76 | Die Rückgabe erfolgt dabei entweder aufgeteilt in Seiten (paginiert) oder komplett (wenn möglich).
77 | Die Struktur eines `index`-Aufrufs ist wie folgt:
78 |
79 | ```bash
80 | ${API_ENDPOINT}/index/${PAGINATION_MODE}[.${FORMAT}]?${QUERY_STRING}
81 | ```
82 |
83 | ##### `PAGINATION_MODE`
84 |
85 | `index` \| `all`
86 |
87 | `PAGINATION_MODE` ist entweder `index` für die seitenweise Ausgabe der Ergebnisse, oder `all`, um den gesamten Datenbestand auf ein Mal anzufordern.
88 | `all` funktioniert nur, wenn der Datenbestand nicht zu groß ist.
89 | Ansonsten wird die Fehlermeldung _"ERROR - Zu viele Daten, bitte benutzen Sie die Blätter-Funktion"_ zurückgegeben (der genaue Kontext der Fehlermeldung hängt vom Ausgabeformat ab).
90 | In diesem Fall muss der `index`-Modus genutzt werden.
91 |
92 | ##### `FORMAT`
93 |
94 | Jede SimpleSearch-Anwendung kann über die `index`-Methode folgende Formate exportieren:
95 |
96 | | [JSON](#json-format-index) | `.json` |
97 | | [XML](#xml-format-index) | `.xml` |
98 | | [CSV](#csv-format-index) | `.csv` |
99 | | [RSS](#rss-format-index) | `.rss` |
100 | | [JSON-RSS](#json-rss-format-index) | `.jrss` |
101 | | HTML (default) | `.html` |
102 |
103 | SimpleSearch-Anwendungen mit Geo-Daten und aktivierter Karte können zusätzlich folgende Geo-Formate zurückgeben:
104 |
105 | | [GeoJSON](#geojson-format-index) | `.geojson` |
106 | | [KML](#kml-format-index) | `.kml` |
107 |
108 |
109 | ##### `QUERY_STRING`
110 |
111 | Über den Query-String kann die Abfrage eingeschränkt oder anders manipuliert werden.
112 | Die folgenden Query-Parameter werden von allen SimpleSearch-Anwendungen angeboten:
113 |
114 | | Parameter | Beschreibung | Beispiel |
115 | | `q` | Ermöglicht eine Volltextsuche über bestimmte Felder des Datenbestands. Welche Felder genau von der Volltextsuche erfasst werden, muss in der API-Dokumentation der jeweiligen Anwendung nachgesehen werden. Default ist `q=`. | `q=`, `q=see`|
116 | | `page` | Gibt an, welche Seite der paginierten Ausgabe gewünscht ist. Nur sinnvoll im Kombination mit `PAGINATION_MODE` `index`. Default ist `page=1`. | `page=2` |
117 | | `order` | Gibt an, welche Felder für die Sortierung der Ergebnisse genutzt weden sollen. Der Zusatz von `ASC`ending und `DESC`ending ist möglich. Welche Felder möglich sind, muss in der API-Dokumentation der jeweiligen Anwendung nachgesehen werden. Default ist `order=id+ASC`. | `order=bezirk`, `order=bezirk+DESC,badname+ASC` |
118 |
119 | SimpleSearch-Anwendungen mit Geo-Koordinaten bieten außerdem die Möglichkeit, über `q_geo` und `q_radius` eine adressbasierte Suche durchzuführen.
120 |
121 | Zudem werden i.d.R. auch die weiteren Spalten bzw. Felder der SimpleSearch-Tabelle als Query-Parameter zu nutzen (z.B. `?bezirk=Spandau`).
122 | Welche zusätzlichen Parameter verfügbar sind, lässt sich in der API-Dokumentation der jeweiligen Anwendung nachlesen.
123 |
124 | #### `detail`
125 |
126 | Mit der `detail`-Methode kann man (wenn ihre Nutzung freigeschaltet wurde) einzelne Einträge des Datenbestandes aufrufen.
127 |
128 | ```bash
129 | ${API_ENDPOINT}/detail/${ITEM_ID}[.${FORMAT}]
130 | ```
131 |
132 | Ein Beispiel für den Aufruf der `detail`-Methode ist:
133 |
134 |
135 | ##### `ITEM_ID`
136 |
137 | Referenz auf die `id`-Spalte der SimpleSearch-Tabelle, die als eindeutiger Identifier dient.
138 |
139 | ##### `FORMAT`
140 |
141 | Jede SimpleSearch-Anwendung kann über die `detail`-Methode folgende Formate exportieren:
142 |
143 | | [JSON](#json-format-detail) | `.json` |
144 | | [XML](#xml-format-detail) | `.xml` |
145 |
146 |
147 | ### Einschränkung
148 |
149 | Bitte beachten Sie, dass die REST-APIs an der SimpleSearch keine Hochleistungs-APIs sind. Wir bitten also um Caching.
150 |
151 | ## Rückgabe / Response
152 |
153 | ### Allgemeine Struktur
154 |
155 | Die JSON- und XML-Rückgabeformate haben grundsätzlich diesselbe Struktur:
156 |
157 | * `messages`:
158 | * `messages`: Eine Liste von Meldungen. Bei erfolgreicher Ausführung leer.
159 | * `success`: Boolean mit Status der Ausführung. Bei `false` ist ein Fehler aufgetreten.
160 | * `results`:
161 | * `count`: Anzahl der Gesamtergebnisse
162 | * `items_per_page`: Anzahl der Einträge pro Seite
163 | * `index`: Liste mit Ergebnissen, wenn die `index`-Methode genutzt wurde.
164 | * Ergebnis 1: Jedes Ergebnis ist ein Objekt mit Attribut-Wert-Paaren.
165 | Es ist immer mindestens ein `id`-Attribut vorhanden, über das die Objekte in der Datenbank der Anwendung fortlaufend durchnummeriert sind. Das `id`-Attribut wird von der SimpleSearch-Anwendung automatisch vergeben und ist nicht unter der Kontrolle der veröffentlichenden Stelle.
166 | Die übrigen Attribute ergeben sich aus der jeweiligen SimpleSearch-Anwendung und müssen dort in Erfahrung gebracht werden.
167 | * Ergebnis 2
168 | * Ergebnis 3
169 | * ...
170 | * `item`: Objekt mit den Daten eines einzelnen Eintrags, wenn die `detail`-Methode genutzt wurde.
171 |
172 | ### JSON-Format (index)
173 |
174 | **Request-URI** | `${API_ENDPOINT}/index/index.json?${QUERY_STRING}`
175 | **Response content-type** | `application/json; charset=UTF-8`
176 |
177 | Das von SimpleSearch über die API ausgelieferte JSON folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
178 |
179 | Konkret sieht die JSON-Struktur am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
180 |
181 | ```json
182 | {
183 | "messages": {
184 | "messages": [],
185 | "success": null
186 | },
187 | "results": {
188 | "count": 15805,
189 | "items_per_page": 20
190 | },
191 | "index": [
192 | {
193 | "id": 37658,
194 | "teilaktenplan": "TLSD - Tarifreferat Lohnsteuer/Sozialversicherung/Diverses",
195 | "aktenplannummer": "Beschaffungsmaßnahmen zur Errichtung von Schießständen für die Zollverwaltung",
196 | "aktentitel": "Wehrpflicht",
197 | "aufbewahrungsfrist_jahre": "10"
198 | },
199 | {
200 | "id": 2,
201 | "teilaktenplan": "BT - Beteiligungen des Landes Berlin",
202 | "aktenplannummer": "BT",
203 | "aktentitel": "Beteiligungen des Landes Berlin",
204 | "aufbewahrungsfrist_jahre": "10"
205 | },
206 | {
207 | "id": 5,
208 | "teilaktenplan": "BT - Beteiligungen des Landes Berlin",
209 | "aktenplannummer": "BT 0",
210 | "aktentitel": "Verwaltung von Beteiligungen",
211 | "aufbewahrungsfrist_jahre": "10"
212 | },
213 | ...
214 | ],
215 | "item": []
216 | }
217 | ```
218 |
219 | ### XML-Format (index)
220 |
221 | **Request-URI** | `${API_ENDPOINT}/index/index.xml?${QUERY_STRING}`
222 | **Response content-type** | `text/xml; charset=UTF-8`
223 |
224 | Das von SimpleSearch über die API ausgelieferte XML folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
225 |
226 | Konkret sieht die XML-Struktur am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
227 |
228 | ```xml
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 | 15805
237 | 20
238 |
239 |
240 | -
241 | 37658
242 |
243 |
244 |
245 | 10
246 |
247 | -
248 | 2
249 |
250 |
251 |
252 | 10
253 |
254 | -
255 | 5
256 |
257 |
258 |
259 | 10
260 |
261 |
262 |
263 |
264 |
265 | ```
266 |
267 | ### CSV-Format (index)
268 |
269 |
270 | **Request-URI** | `${API_ENDPOINT}/index/index.csv?${QUERY_STRING}`
271 | **Response content-type** | `application/csv`
272 |
273 | Das CSV-Format gibt die Ergebnisse der Anfrage als `;`-separiertes CSV zurück.
274 |
275 | Konkret sieht die CSV-Rückgabe am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
276 |
277 | ```csv
278 | id;teilaktenplan;aktenplannummer;aktentitel;aufbewahrungsfrist_jahre
279 | 37658;"TLSD - Tarifreferat Lohnsteuer/Sozialversicherung/Diverses";"Beschaffungsmaßnahmen zur Errichtung von Schießständen für die Zollverwaltung";Wehrpflicht;10
280 | 2;"BT - Beteiligungen des Landes Berlin";BT;"Beteiligungen des Landes Berlin";10
281 | 5;"BT - Beteiligungen des Landes Berlin";"BT 0";"Verwaltung von Beteiligungen";10
282 | ...
283 | ```
284 |
285 | Die Rückgabe besteht aus einer Header-Zeile sowie den Ergebniszeilen.
286 | Auch hier ist wieder mindestens die Spalte `id` enthalten, alle anderen Spalten ergeben sich aus der jeweiligen SimpleSearch-Anwendung und müssen dort in Erfahrung gebracht werden.
287 |
288 | ### RSS-Format (index)
289 |
290 | **Request-URI** | `${API_ENDPOINT}/index/index.rss?${QUERY_STRING}`
291 | **Response content-type** | `text/xml; charset=UTF-8`
292 |
293 | Die SimpleSearch-API bietet auch einen Feed im [RSS 2.0](https://www.rssboard.org/rss-specification)-Format an.
294 |
295 | Die konkrete Rückgabe sieht am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
296 |
297 | ```xml
298 |
299 |
300 |
301 | Aktenplan der Senatsverwaltung für Finanzen
302 | Ein Aktenplan ist die Regelung der systematischen Ordnung des gesamten Schriftgutes einer Verwaltung. Ziel des Aktenplanes ist die übersichtliche, nachvollziehbare und wirtschaftliche Ordnung des Schriftgutes.
Dieser Aktenplan basiert auf der Grundlage des Aktenplans für die Finanzverwaltung. Es wurden themenspezifische Teilaktenpläne ergänzt.
303 | https://www.berlin.de/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php
304 | <a href="aktenplan@senfin.berlin.de" >aktenplan@senfin.berlin.de</a> (Berlin.de - Aktenplan der Senatsverwaltung für Finanzen)
305 | de
306 |
307 |
308 | 20
309 | 1
310 |
311 | 15805
312 | -
313 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47414
314 | 47414
315 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47414&q=
316 |
318 |
319 | -
320 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47411
321 | 47411
322 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47411&q=
323 |
325 |
326 | -
327 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47408
328 | 47408
329 | /sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47408&q=
330 |
332 |
333 |
334 |
335 |
336 | ```
337 |
338 | ### JSON-RSS-Format (index)
339 |
340 | **Request-URI** | `${API_ENDPOINT}/index/index.jrss?${QUERY_STRING}`
341 | **Response content-type** | `application/rss+json; charset=UTF-8`
342 |
343 | Alternativ zum XML-basierten [RSS-Format](#rss-format) bietet die SimpleSearch-API auch einen JSON-basierten Feed.
344 |
345 | Die konkrete JSON-Rückgabe sieht am Beispiel des [Aktenplans der Senatsverwaltung für Finanzen](https://daten.berlin.de/datensaetze/aktenplan-der-senatsverwaltung-für-finanzen) folgendermaßen aus:
346 |
347 | ```json
348 | {
349 | "version": "2.0",
350 | "channel": {
351 | "title": "Aktenplan der Senatsverwaltung für Finanzen",
352 | "link": "https://www.berlin.de/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php",
353 | "description": "Ein Aktenplan ist die Regelung der systematischen Ordnung des gesamten Schriftgutes einer Verwaltung. Ziel des Aktenplanes ist die übersichtliche, nachvollziehbare und wirtschaftliche Ordnung des Schriftgutes.\n\nDieser Aktenplan basiert auf der Grundlage des Aktenplans für die Finanzverwaltung. Es wurden themenspezifische Teilaktenpläne ergänzt.",
354 | "managingEditor": "aktenplan@senfin.berlin.de (Berlin.de - Aktenplan der Senatsverwaltung für Finanzen)",
355 | "language": "de",
356 | "items": [
357 | {
358 | "title": 47414,
359 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47414&q=",
360 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47414"
361 | },
362 | {
363 | "title": 47411,
364 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47411&q=",
365 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47411"
366 | },
367 | {
368 | "title": 47408,
369 | "link": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/?id=47408&q=",
370 | "guid": "/sen/finanzen/ueber-uns/leitung-organisation/aktenplan/index.php/detail/47408"
371 | },
372 | ...
373 | ]
374 | }
375 | }
376 | ```
377 |
378 | ### GeoJSON-Format (index)
379 |
380 | **Request-URI** | `${API_ENDPOINT}/index/index.geojson?${QUERY_STRING}`
381 | **Response content-type** | `application/geo+json; charset=UTF-8`
382 |
383 | Wenn die Einträge einer SimpleSearch-Anwendung Geokoordinaten enthalten und die Kartendarstellung in der Anwendung aktiviert ist, bietet die SimpleSearch-API die Daten auch im [GeoJSON](https://geojson.org)-Format.
384 |
385 | Die konkrete JSON-Rückgabe sieht am Beispiel der [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) folgendermaßen aus:
386 |
387 | ```json
388 | {
389 | "type": "FeatureCollection",
390 | "features": [
391 | {
392 | "type": "Feature",
393 | "geometry": {
394 | "type": "Point",
395 | "coordinates": [
396 | 13.14228,
397 | 52.43271
398 | ]
399 | },
400 | "properties": {
401 | "title": "Alter Hof / Unterhavel",
402 | "href": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/3",
403 | "description": "
Steglitz-Zehlendorf
Mehr...",
404 | "id": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/3",
405 | "data": {
406 | "id": 3,
407 | "prognoselink": "",
408 | "farbe": "gruen_a.jpg",
409 | "badestellelink": "\"Alter Hof(Link zur Badestelle Alter Hof)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344360.php",
410 | "badname": "Alter Hof",
411 | "bezirk": "Steglitz-Zehlendorf",
412 | "dat": "2023-09-12",
413 | "eco": "<15",
414 | "ente": "<15",
415 | "sicht": "50",
416 | "temp": "23,8",
417 | "profillink": "\"Unterhavel - Alter Hof(Link zum Badegewässerprofil Unterhavel Alter Hof)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339134.php",
418 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad29.pdf",
419 | "dat_predict": ""
420 | }
421 | }
422 | },
423 | {
424 | "type": "Feature",
425 | "geometry": {
426 | "type": "Point",
427 | "coordinates": [
428 | 13.62254,
429 | 52.4075
430 | ]
431 | },
432 | "properties": {
433 | "title": "Bammelecke",
434 | "href": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/6",
435 | "description": "
Treptow-Köpenick
Mehr...",
436 | "id": "/lageso/gesundheit/gesundheitsschutz/badegewaesser/liste-der-badestellen/index.php/detail/6",
437 | "data": {
438 | "id": 6,
439 | "prognoselink": "",
440 | "farbe": "gruen_a.jpg",
441 | "badestellelink": "\"Bammelecke(Link zur Badestelle Bammelecke)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344320.php",
442 | "badname": "Bammelecke",
443 | "bezirk": "Treptow-Köpenick",
444 | "dat": "2023-09-06",
445 | "eco": "<15",
446 | "ente": "<15",
447 | "sicht": "60",
448 | "temp": "",
449 | "profillink": "\"Dahme - Bammelecke(Link zum Badegewässerprofil Bammelecke)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339118.php",
450 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad1.pdf",
451 | "dat_predict": ""
452 | }
453 | }
454 | },
455 | ...
456 | ]
457 | }
458 | ```
459 |
460 | Jeder Eintrag der SimpleSearch-Tabelle wird als ein `Feature` abgebildet.
461 | Jedes `Feature` hat Koordinaten und `properties`.
462 | Die `properties` wiederum enthalten ein `data`-Objekt, das die Attribute der ursprünglichen SimpleSearch-Tabelle enthält.
463 | Auch hier kann wieder mindestens das `id`-Attribut vorrausgesetzt werden, alle andere Attribute müssen der SimpleSearch-Anwendung entnommen werden.
464 |
465 | ### KML-Format (index)
466 |
467 | **Request-URI** | `${API_ENDPOINT}/index/index.kml?${QUERY_STRING}`
468 | **Response content-type** | application/vnd.google-earth.kml; charset=UTF-8
469 |
470 | Als alternatives Geodatenformat bietet die SimpleSearch-API auch einen Export im [KML-Format](http://www.opengeospatial.org/standards/kml/).
471 |
472 | Ausgehend vom Beispiel der [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht die XML-Ausgabe der SimpleSearch-API folgendermaßen aus:
473 |
474 | ```xml
475 |
476 |
477 |
478 | Liste der Badestellen
479 | Hilfe
480 |
481 | Mit der Stichwortsuche können Sie nach den folgenden Informationen suchen: “Badestelle”, “Bezirk” und “Badegewässerprofil”.
482 |
483 | Die Freitextsuche findet alle Einträge, die eines der gesuchten Wörter enthalten. Um nach einer genauen Wortgruppe zu suchen, schreiben Sie diese in doppelte Anführungszeichen “”.
484 |
485 | Geben Sie einen Straßennamen ein, so werden Ihnen alle Standorte in der Nähe angezeigt. In der Liste werden die Treffer nach der Entfernung zur jeweiligen Straße sortiert.
486 |
487 | Es reicht die Eingabe eines Begriffes in eines der Auswahlfelder um ein Ergebnis zu erhalten. Bitte danach auf den Button “Suchen” drücken.
488 |
489 | Alter Hof / Unterhavel
490 | Steglitz-Zehlendorf
Mehr... ]]>
492 |
493 | 13.14228,52.43271,0
494 |
495 |
496 |
497 | Bammelecke
498 | Treptow-Köpenick
Mehr... ]]>
500 |
501 | 13.62254,52.4075,0
502 |
503 |
504 |
505 |
506 |
507 | ```
508 |
509 | Die KML-Ausgabe ist deutlich einfacher als die GeoJSON-Ausgabe und enthält für jeden Eintrag der SimpleSearch-Tabelle lediglich den Namen, die Koordinaten und einen Beschreibungstext (in diesem Fall HTML-Code mit einem Bild und einem Link).
510 |
511 | ### JSON-Format (detail)
512 |
513 | **Request-URI** | `${API_ENDPOINT}/detail/${ITEM_ID}.json`
514 | **Response content-type** | `application/json; charset=UTF-8`
515 |
516 | Das von SimpleSearch über die API ausgelieferte JSON folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
517 |
518 | Eine Beispielausgabe für die [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht folgendermaßen aus:
519 |
520 | ```json
521 | {
522 | "messages": {
523 | "messages": [],
524 | "success": null
525 | },
526 | "results": {
527 | "count": 0,
528 | "items_per_page": 20
529 | },
530 | "index": [],
531 | "item": {
532 | "id": 33,
533 | "prognoselink": "",
534 | "farbe": "gelb_a.jpg",
535 | "badestellelink": "\"Große Krampe(Link zur Badestelle Große Krampe)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badestellen/artikel.344326.php",
536 | "bezirk": "Treptow-Köpenick",
537 | "dat": "2023-09-06",
538 | "eco": "<15",
539 | "ente": "<15",
540 | "sicht": "40",
541 | "temp": "21,9",
542 | "profillink": "\"Dahme - Große Krampe(Link zum Badegewässerprofil Große Krampe)\":/lageso/gesundheit/gesundheitsschutz/badegewaesser/badegewaesserprofile/artikel.339117.php",
543 | "pdflink": "\"Alle Probeentnamen der aktuellen Saison für diese Badestelle(Link zur PDF-Datei mit allen Probeentnamen der aktuellen Saison)\":https://data.lageso.de/lageso/baden/bad8.pdf",
544 | "dat_predict": ""
545 | }
546 | }
547 | ```
548 |
549 | Bei allen SimpleSearch-Anwendungen kann man im `item`-Objekt das `id`-Attribut voraussetzen.
550 | Alle anderen Attribute sind abhängig von der jeweiligen Anwendung und müssen in deren API-Dokumentation nachgelesen werden.
551 |
552 | ### XML-Format (detail)
553 |
554 | **Request-URI** | `${API_ENDPOINT}/detail/${ITEM_ID}.xml`
555 | **Response content-type** | `text/xml; charset=UTF-8`
556 |
557 | Das von SimpleSearch über die API ausgelieferte XML folgt der [allgemeinen Struktur](#struktur-der-rückgabeformate) wie oben beschrieben.
558 |
559 | Eine Beispielausgabe für die [Liste der Badestellen](https://daten.berlin.de/datensaetze/liste-der-badestellen) sieht folgendermaßen aus:
560 |
561 | ```xml
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 | 0
570 | 20
571 |
572 |
573 | -
574 | 33
575 |
576 |
577 |
578 |
579 | 2023-09-06
580 |
581 |
582 | 40
583 |
584 |
585 |
586 |
587 |
588 |
589 | ```
590 |
591 | Bei allen SimpleSearch-Anwendungen kann man in `/xml/item` das `id`-Element voraussetzen.
592 | Alle anderen Elemente sind abhängig von der jeweiligen Anwendung und müssen in deren API-Dokumentation nachgelesen werden.
593 |
594 |
595 | ## Impressum
596 |
597 | **Herausgeber:** Land Berlin, [Senatskanzlei](https://www.berlin.de/rbmskzl/)
598 | **Text:** Knud Hinnerk Möller ([BerlinOnline GmbH](https://www.berlinonline.net))
599 | **Grafiken:** Nadine Wohlfahrt ([BerlinOnline GmbH](https://www.berlinonline.net))
600 | **Lizenz**: Der Text des Handbuchs ist unter einer [Creative Commons Namensnennung 4.0 International Lizenz](https://creativecommons.org/licenses/by/4.0/deed.de) (CC BY 4.0) veröffentlicht.
601 | Bilder und andere Elemente, deren Urheberrecht bei Dritten liegen, sind ausgenommen.
602 | [Quellenverzeichnis](../#quellenverzeichnis) und [Bildverzeichnis](../#bildverzeichnis) mit entsprechenden Urheberrechtsangaben sind im Handbuch enthalten.
603 | **Quelle**: Der Quelltext für das Handbuch befindet sich in folgendem Repository: .
604 | Dort können über die _[Issue](https://github.com/berlinonline/open-data-handbuch/issues)_-Funktion auch Anregungen gemacht oder Fehler gemeldet werden (github-Account erforderlich).
605 | Wer mag, kann auch gleich einen Pull Request stellen!
606 | **Stand**: 2024-11-18
607 | ([2.0.1](https://github.com/berlinonline/open-data-handbuch/blob/master/CHANGELOG.md#201))
608 |
609 | ---
610 |
611 | '"){:width="205px"}
612 | {:width="240px"}
613 |
614 |
--------------------------------------------------------------------------------
/template/default.latex:
--------------------------------------------------------------------------------
1 | \PassOptionsToPackage{unicode=true$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref} % options for packages loaded elsewhere
2 | \PassOptionsToPackage{hyphens}{url}
3 | $if(colorlinks)$
4 | \PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor}
5 | $endif$
6 | $if(dir)$
7 | $if(latex-dir-rtl)$
8 | \PassOptionsToPackage{RTLdocument}{bidi}
9 | $endif$
10 | $endif$
11 | %
12 | \documentclass[
13 | $if(fontsize)$
14 | $fontsize$,
15 | $endif$
16 | $if(lang)$
17 | $babel-lang$,
18 | $endif$
19 | $if(papersize)$
20 | $papersize$paper,
21 | $endif$
22 | $if(beamer)$
23 | ignorenonframetext,
24 | $if(handout)$
25 | handout,
26 | $endif$
27 | $if(aspectratio)$
28 | aspectratio=$aspectratio$,
29 | $endif$
30 | $endif$
31 | $for(classoption)$
32 | $classoption$$sep$,
33 | $endfor$
34 | ]{$documentclass$}
35 | \usepackage[T1]{fontenc}
36 | \usepackage{microtype}
37 | \DisableLigatures[?,!]{encoding=T1}
38 | $if(beamer)$
39 | $if(background-image)$
40 | \usebackgroundtemplate{%
41 | \includegraphics[width=\paperwidth]{$background-image$}%
42 | }
43 | $endif$
44 | \usepackage{pgfpages}
45 | \setbeamertemplate{caption}[numbered]
46 | \setbeamertemplate{caption label separator}{: }
47 | \setbeamercolor{caption name}{fg=normal text.fg}
48 | \beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
49 | $for(beameroption)$
50 | \setbeameroption{$beameroption$}
51 | $endfor$
52 | % Prevent slide breaks in the middle of a paragraph:
53 | \widowpenalties 1 10000
54 | \raggedbottom
55 | $if(section-titles)$
56 | \setbeamertemplate{part page}{
57 | \centering
58 | \begin{beamercolorbox}[sep=16pt,center]{part title}
59 | \usebeamerfont{part title}\insertpart\par
60 | \end{beamercolorbox}
61 | }
62 | \setbeamertemplate{section page}{
63 | \centering
64 | \begin{beamercolorbox}[sep=12pt,center]{part title}
65 | \usebeamerfont{section title}\insertsection\par
66 | \end{beamercolorbox}
67 | }
68 | \setbeamertemplate{subsection page}{
69 | \centering
70 | \begin{beamercolorbox}[sep=8pt,center]{part title}
71 | \usebeamerfont{subsection title}\insertsubsection\par
72 | \end{beamercolorbox}
73 | }
74 | \AtBeginPart{
75 | \frame{\partpage}
76 | }
77 | \AtBeginSection{
78 | \ifbibliography
79 | \else
80 | \frame{\sectionpage}
81 | \fi
82 | }
83 | \AtBeginSubsection{
84 | \frame{\subsectionpage}
85 | }
86 | $endif$
87 | $endif$
88 | $if(beamerarticle)$
89 | \usepackage{beamerarticle} % needs to be loaded first
90 | $endif$
91 | $if(fontfamily)$
92 | \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
93 | $else$
94 | \usepackage{lmodern}
95 | $endif$
96 | $if(linestretch)$
97 | \usepackage{setspace}
98 | \setstretch{$linestretch$}
99 | $endif$
100 | \usepackage{amssymb,amsmath}
101 | \usepackage{ifxetex,ifluatex}
102 | \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
103 | \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
104 | \usepackage[utf8]{inputenc}
105 | \usepackage{textcomp} % provides euro and other symbols
106 | \else % if luatex or xelatex
107 | $if(mathspec)$
108 | \ifxetex
109 | \usepackage{mathspec}
110 | \else
111 | \usepackage{unicode-math}
112 | \fi
113 | $else$
114 | \usepackage{unicode-math}
115 | $endif$
116 | \defaultfontfeatures{Scale=MatchLowercase}
117 | \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
118 | $if(mainfont)$
119 | \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
120 | $endif$
121 | $if(sansfont)$
122 | \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
123 | $endif$
124 | $if(monofont)$
125 | \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
126 | $endif$
127 | $for(fontfamilies)$
128 | \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
129 | $endfor$
130 | $if(mathfont)$
131 | $if(mathspec)$
132 | \ifxetex
133 | \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
134 | \else
135 | \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
136 | \fi
137 | $else$
138 | \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
139 | $endif$
140 | $endif$
141 | $if(CJKmainfont)$
142 | \ifxetex
143 | \usepackage{xeCJK}
144 | \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
145 | \fi
146 | $endif$
147 | $if(luatexjapresetoptions)$
148 | \ifluatex
149 | \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
150 | \fi
151 | $endif$
152 | $if(CJKmainfont)$
153 | \ifluatex
154 | \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
155 | \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
156 | \fi
157 | $endif$
158 | \fi
159 | $if(beamer)$
160 | $if(theme)$
161 | \usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
162 | $endif$
163 | $if(colortheme)$
164 | \usecolortheme{$colortheme$}
165 | $endif$
166 | $if(fonttheme)$
167 | \usefonttheme{$fonttheme$}
168 | $endif$
169 | $if(mainfont)$
170 | \usefonttheme{serif} % use mainfont rather than sansfont for slide text
171 | $endif$
172 | $if(innertheme)$
173 | \useinnertheme{$innertheme$}
174 | $endif$
175 | $if(outertheme)$
176 | \useoutertheme{$outertheme$}
177 | $endif$
178 | $endif$
179 | % use upquote if available, for straight quotes in verbatim environments
180 | \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
181 | \IfFileExists{microtype.sty}{% use microtype if available
182 | \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
183 | \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
184 | }{}
185 | $if(indent)$
186 | $else$
187 | \makeatletter
188 | \@ifundefined{KOMAClassName}{% if non-KOMA class
189 | \IfFileExists{parskip.sty}{%
190 | \usepackage{parskip}
191 | }{% else
192 | \setlength{\parindent}{0pt}
193 | \setlength{\parskip}{6pt plus 2pt minus 1pt}}
194 | }{% if KOMA class
195 | \KOMAoptions{parskip=half}}
196 | \makeatother
197 | $endif$
198 | $if(verbatim-in-note)$
199 | \usepackage{fancyvrb}
200 | $endif$
201 | \usepackage{xcolor}
202 | \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
203 | \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
204 | \hypersetup{
205 | $if(title-meta)$
206 | pdftitle={$title-meta$},
207 | $endif$
208 | $if(author-meta)$
209 | pdfauthor={$author-meta$},
210 | $endif$
211 | $if(keywords)$
212 | pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
213 | $endif$
214 | $if(colorlinks)$
215 | colorlinks=true,
216 | linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$,
217 | filecolor=$if(filecolor)$$filecolor$$else$Maroon$endif$,
218 | citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$,
219 | urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$,
220 | $else$
221 | pdfborder={0 0 0},
222 | $endif$
223 | breaklinks=true}
224 | \urlstyle{same} % don't use monospace font for urls
225 | $if(verbatim-in-note)$
226 | \VerbatimFootnotes % allows verbatim text in footnotes
227 | $endif$
228 | $if(geometry)$
229 | \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
230 | $endif$
231 | $if(beamer)$
232 | \newif\ifbibliography
233 | $endif$
234 | $if(listings)$
235 | \usepackage{listings}
236 | \newcommand{\passthrough}[1]{#1}
237 | \lstset{defaultdialect=[5.3]Lua}
238 | \lstset{defaultdialect=[x86masm]Assembler}
239 | $endif$
240 | $if(lhs)$
241 | \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
242 | $endif$
243 | $if(highlighting-macros)$
244 | $highlighting-macros$
245 | $endif$
246 | $if(tables)$
247 | \usepackage{calc}
248 | \usepackage{longtable,booktabs,array}
249 | $if(beamer)$
250 | \usepackage{caption}
251 | % These lines are needed to make table captions work with longtable:
252 | \makeatletter
253 | \def\fnum@table{\tablename~\thetable}
254 | \makeatother
255 | $else$
256 | % Allow footnotes in longtable head/foot
257 | \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
258 | \makesavenoteenv{longtable}
259 | $endif$
260 | $endif$
261 | $if(graphics)$
262 | \usepackage{graphicx,grffile}
263 | \makeatletter
264 | \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
265 | \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
266 | \makeatother
267 | % Scale images if necessary, so that they will not overflow the page
268 | % margins by default, and it is still possible to overwrite the defaults
269 | % using explicit options in \includegraphics[width, height, ...]{}
270 | \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
271 | $endif$
272 | $if(links-as-notes)$
273 | % Make links footnotes instead of hotlinks:
274 | \DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
275 | $endif$
276 | $if(strikeout)$
277 | \usepackage[normalem]{ulem}
278 | % avoid problems with \sout in headers with hyperref:
279 | \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
280 | $endif$
281 | \setlength{\emergencystretch}{3em} % prevent overfull lines
282 | \providecommand{\tightlist}{%
283 | \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
284 | $if(numbersections)$
285 | \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
286 | $else$
287 | \setcounter{secnumdepth}{-2}
288 | $endif$
289 | $if(beamer)$
290 | $else$
291 | $if(subparagraph)$
292 | $else$
293 | % Redefines (sub)paragraphs to behave more like sections
294 | \ifx\paragraph\undefined\else
295 | \let\oldparagraph\paragraph
296 | \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
297 | \fi
298 | \ifx\subparagraph\undefined\else
299 | \let\oldsubparagraph\subparagraph
300 | \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
301 | \fi
302 | $endif$
303 | $endif$
304 | $if(pagestyle)$
305 | \pagestyle{$pagestyle$}
306 | $endif$
307 |
308 | % set default figure placement to htbp
309 | \makeatletter
310 | \def\fps@figure{htbp}
311 | \makeatother
312 |
313 | $for(header-includes)$
314 | $header-includes$
315 | $endfor$
316 | $if(lang)$
317 | \ifnum 0\ifxetex 1\fi=0 % if pdftex or luatex
318 | \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
319 | $if(babel-newcommands)$
320 | $babel-newcommands$
321 | $endif$
322 | \else % if xetex
323 | % load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
324 | \usepackage{polyglossia}
325 | \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
326 | $for(polyglossia-otherlangs)$
327 | \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
328 | $endfor$
329 | \fi
330 | $endif$
331 | $if(dir)$
332 | \ifxetex
333 | % load bidi as late as possible as it modifies e.g. graphicx
334 | \usepackage{bidi}
335 | \fi
336 | \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
337 | \TeXXeTstate=1
338 | \newcommand{\RL}[1]{\beginR #1\endR}
339 | \newcommand{\LR}[1]{\beginL #1\endL}
340 | \newenvironment{RTL}{\beginR}{\endR}
341 | \newenvironment{LTR}{\beginL}{\endL}
342 | \fi
343 | $endif$
344 | $if(natbib)$
345 | \usepackage[$natbiboptions$]{natbib}
346 | \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
347 | $endif$
348 | $if(biblatex)$
349 | \usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
350 | $for(bibliography)$
351 | \addbibresource{$bibliography$}
352 | $endfor$
353 | $endif$
354 |
355 | $if(title)$
356 | \title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
357 | $endif$
358 | $if(subtitle)$
359 | $if(beamer)$
360 | $else$
361 | \usepackage{etoolbox}
362 | \makeatletter
363 | \providecommand{\subtitle}[1]{% add subtitle to \maketitle
364 | \apptocmd{\@title}{\par {\large #1 \par}}{}{}
365 | }
366 | \makeatother
367 | $endif$
368 | \subtitle{$subtitle$}
369 | $endif$
370 | $if(author)$
371 | \author{$for(author)$$author$$sep$ \and $endfor$}
372 | $endif$
373 | \date{$date$}
374 | $if(beamer)$
375 | $if(institute)$
376 | \institute{$for(institute)$$institute$$sep$ \and $endfor$}
377 | $endif$
378 | $if(titlegraphic)$
379 | \titlegraphic{\includegraphics{$titlegraphic$}}
380 | $endif$
381 | $if(logo)$
382 | \logo{\includegraphics{$logo$}}
383 | $endif$
384 | $endif$
385 |
386 | \begin{document}
387 | $if(title)$
388 | $if(beamer)$
389 | \frame{\titlepage}
390 | $else$
391 | %\maketitle
392 | %\includegraphics{$titlegraphic$}
393 | \clearpage
394 | %% temporary titles
395 | % command to provide stretchy vertical space in proportion
396 | \newcommand\nbvspace[1][3]{\vspace*{\stretch{#1}}}
397 | % allow some slack to avoid under/overfull boxes
398 | \newcommand\nbstretchyspace{\spaceskip0.5em plus 0.25em minus 0.25em}
399 | % To improve spacing on titlepages
400 | \newcommand{\nbtitlestretch}{\spaceskip0.6em}
401 | \thispagestyle{empty}
402 | \begin{center}
403 | \bfseries
404 | \nbvspace[1]
405 | \Huge
406 | $title$
407 | % {\nbtitlestretch\huge
408 | % $title$}
409 |
410 | \nbvspace[1]
411 | \normalsize
412 |
413 | % TO WHICH IS ADDED MANY USEFUL ONE\\
414 | % LINERS AND CODE SO THAT\\
415 | % YOU CAN AWK LIKE A HAWK
416 | % \nbvspace[1]
417 | % \small BY\\
418 | % \Large PETERIS KRUMINS\\[0.5em]
419 | % \footnotesize AUTHOR OF ``A WORKING ALGEBRA,'' ``WIRELESS TELEGRAPHY,\\
420 | % ITS HISTORY, THEORY AND PRACTICE,'' ETC., ETC.
421 |
422 | \nbvspace[2]
423 |
424 | \includegraphics{$cover-image$}
425 | \nbvspace[3]
426 | \normalsize
427 |
428 | % DOHA\\
429 | \large
430 | $date$
431 | \nbvspace[1]
432 | \end{center}
433 | $endif$
434 | $if(abstract)$
435 | \begin{abstract}
436 | $abstract$
437 | \end{abstract}
438 | $endif$
439 | $endif$
440 |
441 | \pagestyle{plain}
442 |
443 |
444 | $for(include-before)$
445 | $include-before$
446 |
447 | $endfor$
448 | $if(toc)$
449 | $if(toc-title)$
450 | \renewcommand*\contentsname{$toc-title$}
451 | $endif$
452 | $if(beamer)$
453 | \begin{frame}
454 | $if(toc-title)$
455 | \frametitle{$toc-title$}
456 | $endif$
457 | \tableofcontents[hideallsubsections]
458 | \end{frame}
459 | $else$
460 | {
461 | $if(colorlinks)$
462 | \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
463 | $endif$
464 | \setcounter{tocdepth}{$toc-depth$}
465 | \tableofcontents
466 | }
467 | $endif$
468 | $endif$
469 | $if(lot)$
470 | \listoftables
471 | $endif$
472 | $if(lof)$
473 | \listoffigures
474 | $endif$
475 | $body$
476 |
477 | $if(natbib)$
478 | $if(bibliography)$
479 | $if(biblio-title)$
480 | $if(book-class)$
481 | \renewcommand\bibname{$biblio-title$}
482 | $else$
483 | \renewcommand\refname{$biblio-title$}
484 | $endif$
485 | $endif$
486 | $if(beamer)$
487 | \begin{frame}[allowframebreaks]{$biblio-title$}
488 | \bibliographytrue
489 | $endif$
490 | \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
491 | $if(beamer)$
492 | \end{frame}
493 | $endif$
494 |
495 | $endif$
496 | $endif$
497 | $if(biblatex)$
498 | $if(beamer)$
499 | \begin{frame}[allowframebreaks]{$biblio-title$}
500 | \bibliographytrue
501 | \printbibliography[heading=none]
502 | \end{frame}
503 | $else$
504 | \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
505 | $endif$
506 |
507 | $endif$
508 | $for(include-after)$
509 | $include-after$
510 |
511 | $endfor$
512 | \end{document}
513 |
--------------------------------------------------------------------------------
/template/listings-setup.tex:
--------------------------------------------------------------------------------
1 | \usepackage{xcolor}
2 |
3 | \lstset{
4 | basicstyle=\small\ttfamily,
5 | numbers=left,
6 | numberstyle=\footnotesize,
7 | stepnumber=2,
8 | numbersep=5pt,
9 | backgroundcolor=\color{black!10},
10 | showspaces=false,
11 | showstringspaces=false,
12 | showtabs=false,
13 | tabsize=2,
14 | captionpos=b,
15 | breaklines=true,
16 | breakatwhitespace=false,
17 | breakautoindent=true,
18 | linewidth=\textwidth,
19 | literate=%
20 | {Ö}{{\"O}}1
21 | {Ä}{{\"A}}1
22 | {Ü}{{\"U}}1
23 | {ß}{{\ss}}1
24 | {ü}{{\"u}}1
25 | {ä}{{\"a}}1
26 | {ö}{{\"o}}1
27 | {§}{{\S}}1
28 | }
29 |
--------------------------------------------------------------------------------
/template/metadata_yml.template:
--------------------------------------------------------------------------------
1 | ---
2 | documentclass: book
3 | language: de
4 | date: @include(date)
5 | title: 'Das Berliner Open-Data-Handbuch'
6 | cover-image: images/title.png
7 | numbersections: true
8 | fontfamily: arev
9 | papersize: a4
10 | pagestyle: plain
11 | header-includes:
12 | - \urlstyle{tt}
13 | ---
--------------------------------------------------------------------------------