geoblacklight 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.solr_wrapper +6 -0
- data/.travis.yml +18 -4
- data/README.md +2 -4
- data/Rakefile +58 -35
- data/app/assets/javascripts/geoblacklight/geoblacklight.js +1 -1
- data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +5 -1
- data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +6 -0
- data/app/helpers/carto_helper.rb +36 -0
- data/app/helpers/geoblacklight_helper.rb +10 -9
- data/app/models/concerns/geoblacklight/solr_document.rb +1 -1
- data/app/models/concerns/geoblacklight/solr_document/carto.rb +28 -0
- data/app/views/catalog/_exports.html.erb +3 -3
- data/config/initializers/rails_config.rb +1 -1
- data/config/locales/geoblacklight.en.yml +1 -0
- data/geoblacklight.gemspec +9 -8
- data/lib/generators/geoblacklight/install_generator.rb +8 -14
- data/lib/generators/geoblacklight/templates/settings.yml +2 -2
- data/lib/geoblacklight/engine.rb +2 -1
- data/lib/geoblacklight/version.rb +1 -1
- data/lib/geoblacklight/view_helper_override.rb +1 -0
- data/lib/geoblacklight/wms_layer.rb +1 -1
- data/lib/tasks/geoblacklight.rake +19 -1
- data/schema/geoblacklight-schema.json +21 -23
- data/schema/geoblacklight-schema.md +10 -8
- data/solr/conf/_rest_managed.json +3 -0
- data/solr/conf/admin-extra.html +31 -0
- data/solr/conf/elevate.xml +36 -0
- data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/{schema/solr → solr}/conf/protwords.txt +0 -0
- data/{schema/solr → solr}/conf/schema.xml +2 -4
- data/solr/conf/scripts.conf +24 -0
- data/{schema/solr → solr}/conf/solrconfig.xml +17 -6
- data/solr/conf/spellings.txt +2 -0
- data/solr/conf/stopwords.txt +58 -0
- data/solr/conf/stopwords_en.txt +58 -0
- data/{schema/solr → solr}/conf/synonyms.txt +31 -29
- data/solr/conf/xslt/example.xsl +132 -0
- data/solr/conf/xslt/example_atom.xsl +67 -0
- data/solr/conf/xslt/example_rss.xsl +66 -0
- data/solr/conf/xslt/luke.xsl +337 -0
- data/spec/controllers/catalog_controller_spec.rb +1 -1
- data/spec/controllers/download_controller_spec.rb +14 -8
- data/spec/features/configurable_basemap_spec.rb +0 -1
- data/spec/features/exports_spec.rb +4 -4
- data/spec/fixtures/solr_documents/esri-image-map-layer.json +2 -2
- data/spec/helpers/carto_helper_spec.rb +11 -0
- data/spec/helpers/geoblacklight_helpers_spec.rb +0 -8
- data/spec/models/concerns/geoblacklight/solr_document/{carto_db_spec.rb → carto_spec.rb} +6 -6
- data/spec/spec_helper.rb +8 -1
- data/spec/support/backport_test_helpers.rb +45 -0
- data/spec/test_app_templates/solr_documents +1 -0
- data/template.rb +1 -1
- metadata +88 -52
- data/app/models/concerns/geoblacklight/solr_document/carto_db.rb +0 -15
- data/config/jetty.yml +0 -6
- data/lib/generators/geoblacklight/templates/config/jetty.yml +0 -10
- data/lib/tasks/configure_solr.rake +0 -14
- data/schema/solr/conf/stopwords_en.txt +0 -34
@@ -1,8 +1,8 @@
|
|
1
1
|
# Configurable Logo Used for CartoDB export
|
2
2
|
APPLICATION_LOGO_URL: 'http://geoblacklight.org/images/geoblacklight-logo.png'
|
3
3
|
|
4
|
-
#
|
5
|
-
|
4
|
+
# Carto OneClick Service https://carto.com/engine/open-in-carto/
|
5
|
+
CARTO_ONECLICK_LINK: 'http://oneclick.cartodb.com/'
|
6
6
|
|
7
7
|
# Download path can be configured using this setting
|
8
8
|
#DOWNLOAD_PATH: "./tmp/cache/downloads"
|
data/lib/geoblacklight/engine.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'blacklight'
|
2
2
|
require 'leaflet-rails'
|
3
3
|
require 'font-awesome-rails'
|
4
|
-
require '
|
4
|
+
require 'config'
|
5
5
|
require 'faraday'
|
6
6
|
require 'nokogiri'
|
7
7
|
require 'coderay'
|
@@ -15,6 +15,7 @@ module Geoblacklight
|
|
15
15
|
# into action view base here.
|
16
16
|
initializer 'geoblacklight.helpers' do
|
17
17
|
ActionView::Base.send :include, GeoblacklightHelper
|
18
|
+
ActionView::Base.send :include, CartoHelper
|
18
19
|
end
|
19
20
|
|
20
21
|
config.to_prepare do
|
@@ -26,6 +26,7 @@ module Geoblacklight
|
|
26
26
|
|
27
27
|
def render_constraints_filters(localized_params = params)
|
28
28
|
content = super(localized_params)
|
29
|
+
localized_params = localized_params.to_unsafe_h unless localized_params.is_a?(Hash)
|
29
30
|
|
30
31
|
if localized_params[:bbox]
|
31
32
|
path = search_action_path(remove_spatial_filter_group(:bbox, localized_params))
|
@@ -1,8 +1,18 @@
|
|
1
|
+
require 'solr_wrapper'
|
1
2
|
require 'rails/generators'
|
2
3
|
require 'generators/geoblacklight/install_generator'
|
3
4
|
|
4
5
|
namespace :geoblacklight do
|
5
|
-
|
6
|
+
desc 'Run Solr and GeoBlacklight for interactive development'
|
7
|
+
task :server, [:rails_server_args] do |_t, args|
|
8
|
+
SolrWrapper.wrap(port: '8983') do |solr|
|
9
|
+
solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path('../../', File.dirname(__FILE__)), 'solr', 'conf')) do
|
10
|
+
system "bundle exec rails s #{args[:rails_server_args]}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
namespace :index do
|
6
16
|
desc "Put sample data into solr"
|
7
17
|
task :seed => :environment do
|
8
18
|
docs = Dir['spec/fixtures/solr_documents/*.json'].map { |f| JSON.parse File.read(f) }.flatten
|
@@ -34,6 +44,7 @@ namespace :geoblacklight do
|
|
34
44
|
Blacklight.default_index.connection.commit
|
35
45
|
end
|
36
46
|
end
|
47
|
+
|
37
48
|
namespace :downloads do
|
38
49
|
desc 'Delete all cached downloads'
|
39
50
|
task delete: :environment do
|
@@ -61,4 +72,11 @@ namespace :geoblacklight do
|
|
61
72
|
end
|
62
73
|
end
|
63
74
|
end
|
75
|
+
|
76
|
+
namespace :solr do
|
77
|
+
desc "Put sample data into solr"
|
78
|
+
task :seed => :environment do
|
79
|
+
Rake::Task['geoblacklight:index:seed'].invoke
|
80
|
+
end
|
81
|
+
end
|
64
82
|
end
|
@@ -3,23 +3,20 @@
|
|
3
3
|
"description": "Schema for GeoBlacklight. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more details.",
|
4
4
|
"id": "http://geoblacklight.org/v1.0/schema",
|
5
5
|
"title": "GeoBlacklight Schema",
|
6
|
-
"required": [
|
7
|
-
"dc_title_s",
|
8
|
-
"dc_description_s",
|
9
|
-
"dc_rights_s",
|
10
|
-
"dct_provenance_s",
|
11
|
-
"layer_id_s",
|
12
|
-
"layer_geom_type_s",
|
13
|
-
"layer_modified_dt",
|
14
|
-
"layer_slug_s",
|
15
|
-
"solr_geom"
|
16
|
-
],
|
17
6
|
"type": "array",
|
18
7
|
"properties": {
|
19
8
|
"layer": {
|
20
9
|
"title": "layer",
|
21
10
|
"description": "A GIS data layer. See [this example](https://github.com/OpenGeoMetadata/edu.stanford.purl/blob/master/bb/099/zb/1450/geoblacklight.json) metadata layer.",
|
22
11
|
"type": "object",
|
12
|
+
"required": [
|
13
|
+
"dc_title_s",
|
14
|
+
"dc_identifier_s",
|
15
|
+
"dc_rights_s",
|
16
|
+
"dct_provenance_s",
|
17
|
+
"layer_slug_s",
|
18
|
+
"solr_geom"
|
19
|
+
],
|
23
20
|
"properties": {
|
24
21
|
"uuid": {
|
25
22
|
"type": "string",
|
@@ -38,7 +35,7 @@
|
|
38
35
|
},
|
39
36
|
"dc_description_s": {
|
40
37
|
"type": "string",
|
41
|
-
"description": "Description for the layer.",
|
38
|
+
"description": "Description for the layer. *Optional*",
|
42
39
|
"example": "My Description"
|
43
40
|
},
|
44
41
|
"dc_rights_s": {
|
@@ -56,7 +53,8 @@
|
|
56
53
|
},
|
57
54
|
"dct_references_s": {
|
58
55
|
"type": "string",
|
59
|
-
"description": "External resources that are available for the layer. The value is a JSON hash where each key is a URI for the protocol or format, and the value is the URL to the external resource. See `dct_references_s` [detailed documentation](http://geoblacklight.org/tutorial/2015/02/09/geoblacklight-overview.html)",
|
56
|
+
"description": "External resources that are available for the layer. The value is a JSON hash where each key is a URI for the protocol or format, and the value is the URL to the external resource. See `dct_references_s` [detailed documentation](http://geoblacklight.org/tutorial/2015/02/09/geoblacklight-overview.html). *Optional*",
|
57
|
+
"pattern": "\\{.*\\}",
|
60
58
|
"example": "{ ... }"
|
61
59
|
},
|
62
60
|
"georss_box_s": {
|
@@ -66,7 +64,7 @@
|
|
66
64
|
},
|
67
65
|
"layer_id_s": {
|
68
66
|
"type": "string",
|
69
|
-
"description": "The complete identifier for the layer via WMS/WFS/WCS protocol.",
|
67
|
+
"description": "The complete identifier for the layer via WMS/WFS/WCS protocol. *Optional*",
|
70
68
|
"example": "druid:vr593vj7147"
|
71
69
|
},
|
72
70
|
"layer_geom_type_s": {
|
@@ -77,18 +75,20 @@
|
|
77
75
|
"Polygon",
|
78
76
|
"Raster",
|
79
77
|
"Scanned Map",
|
78
|
+
"Image",
|
80
79
|
"Mixed"
|
81
80
|
],
|
82
|
-
"description": "Geometry type for layer data, using controlled vocabulary."
|
81
|
+
"description": "Geometry type for layer data, using controlled vocabulary. *Optional*"
|
83
82
|
},
|
84
83
|
"layer_modified_dt": {
|
85
84
|
"type": "string",
|
86
85
|
"format": "date-time",
|
87
|
-
"description": "Last modification date for the metadata record, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ)."
|
86
|
+
"description": "Last modification date for the metadata record, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). *Optional*"
|
88
87
|
},
|
89
88
|
"layer_slug_s": {
|
90
89
|
"type": "string",
|
91
90
|
"description": "Identifies a layer in human-readable keywords. Note this value is visible to the user, and used for Permalinks. The value should be alpha-numeric characters separated by dashes, and is typically of the form `institution-keyword1-keyword2`. It should also be globally unique across all institutions in *your* GeoBlacklight index. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation.",
|
91
|
+
"pattern": "^[-a-zA-Z0-9]+$",
|
92
92
|
"example": "stanford-andhra-pradesh-village-boundaries"
|
93
93
|
},
|
94
94
|
"solr_geom": {
|
@@ -112,12 +112,8 @@
|
|
112
112
|
},
|
113
113
|
"dc_format_s": {
|
114
114
|
"type": "string",
|
115
|
-
"
|
116
|
-
|
117
|
-
"GeoTIFF",
|
118
|
-
"ArcGRID"
|
119
|
-
],
|
120
|
-
"description": "File format for the layer, using a controlled vocabulary. *Optional*"
|
115
|
+
"description": "File format for the layer, ideally using a controlled vocabulary. *Optional*",
|
116
|
+
"example": "Shapefile, GeoTIFF, ArcGRID"
|
121
117
|
},
|
122
118
|
"dc_language_s": {
|
123
119
|
"type": "string",
|
@@ -199,7 +195,9 @@
|
|
199
195
|
"geoblacklight_version": {
|
200
196
|
"type": "string",
|
201
197
|
"description": "The version of the GeoBlacklight Schema to which this metadata record conforms.",
|
202
|
-
"
|
198
|
+
"enum": [
|
199
|
+
"1.0"
|
200
|
+
]
|
203
201
|
}
|
204
202
|
}
|
205
203
|
}
|
@@ -8,8 +8,8 @@ A GIS data layer. See [this example](https://github.com/OpenGeoMetadata/edu.stan
|
|
8
8
|
| Name | Type | Description | Example |
|
9
9
|
| ------- | ------- | ------- | ------- |
|
10
10
|
| **dc_creator_sm** | *array* | Author(s) of the layer. *Optional* | `"George Washington, Thomas Jefferson"` |
|
11
|
-
| **dc_description_s** | *string* | Description for the layer. | `"My Description"` |
|
12
|
-
| **dc_format_s** | *string* | File format for the layer, using a controlled vocabulary. *Optional
|
11
|
+
| **dc_description_s** | *string* | Description for the layer. *Optional* | `"My Description"` |
|
12
|
+
| **dc_format_s** | *string* | File format for the layer, ideally using a controlled vocabulary. *Optional* | `"Shapefile, GeoTIFF, ArcGRID"` |
|
13
13
|
| **dc_identifier_s** | *string* | Unique identifier for layer as a URI. It should be globally unique across all institutions, assumed not to be end-user visible, and is usually of the form `http://institution/id`. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation. | `"http://purl.stanford.edu/vr593vj7147"` |
|
14
14
|
| **dc_language_s** | *string* | Language for the layer. *Optional*. Note that future versions of the schema may make this a multi-valued field. | `"English"` |
|
15
15
|
| **dc_publisher_s** | *string* | Publisher of the layer. *Optional* | `"ML InfoMap"` |
|
@@ -22,16 +22,18 @@ A GIS data layer. See [this example](https://github.com/OpenGeoMetadata/edu.stan
|
|
22
22
|
| **dct_isPartOf_sm** | *array* | Holding entity for the layer, such as the title of a collection. *Optional* | `"Village Maps of India"` |
|
23
23
|
| **dct_issued_dt** | *date-time* | Issued date for the layer, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). *Optional* | `"2015-01-01T12:00:00Z"` |
|
24
24
|
| **dct_provenance_s** | *string* | Institution who holds the layer. | `"Stanford"` |
|
25
|
-
| **dct_references_s** | *string* | External resources that are available for the layer. The value is a JSON hash where each key is a URI for the protocol or format, and the value is the URL to the external resource. See `dct_references_s` [detailed documentation](http://geoblacklight.org/tutorial/2015/02/09/geoblacklight-overview.html) | `"{ ... }"` |
|
25
|
+
| **dct_references_s** | *string* | External resources that are available for the layer. The value is a JSON hash where each key is a URI for the protocol or format, and the value is the URL to the external resource. See `dct_references_s` [detailed documentation](http://geoblacklight.org/tutorial/2015/02/09/geoblacklight-overview.html). *Optional*<br/> **pattern:** `\{.*\}` | `"{ ... }"` |
|
26
26
|
| **dct_spatial_sm** | *array* | Spatial coverage and place names for the layer, preferrably in a controlled vocabulary. *Optional* | `"Paris, San Francisco"` |
|
27
27
|
| **dct_temporal_sm** | *array* | Temporal coverage for the layer, typically years or dates. Note that this field is not in a specific date format. *Optional* | `"1989, circa 2010, 2007-2009"` |
|
28
|
-
| **geoblacklight_version** | *string* | The version of the GeoBlacklight Schema to which this metadata record conforms. | `"1.0"` |
|
28
|
+
| **geoblacklight_version** | *string* | The version of the GeoBlacklight Schema to which this metadata record conforms.<br/> **one of:**`"1.0"` | `"1.0"` |
|
29
29
|
| **georss_box_s** | *string* | *DEPRECATED* (use `solr_geom`): Bounding box for the layer, as maximum values for S W N E. | `"12.6 -119.4 19.9 84.8"` |
|
30
30
|
| **georss_point_s** | *string* | *DEPRECATED* (use `georss_box_s`): Point representation for layer as y, x - i.e., centroid | `"12.6 -119.4"` |
|
31
|
-
| **layer_geom_type_s** | *string* | Geometry type for layer data, using controlled vocabulary.<br/> **one of:**`"Point"` or `"Line"` or `"Polygon"` or `"Raster"` or `"Scanned Map"` or `"Mixed"` | `"Point"` |
|
32
|
-
| **layer_id_s** | *string* | The complete identifier for the layer via WMS/WFS/WCS protocol. | `"druid:vr593vj7147"` |
|
33
|
-
| **layer_modified_dt** | *date-time* | Last modification date for the metadata record, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). | `"2015-01-01T12:00:00Z"` |
|
34
|
-
| **layer_slug_s** | *string* | Identifies a layer in human-readable keywords. Note this value is visible to the user, and used for Permalinks. The value should be alpha-numeric characters separated by dashes, and is typically of the form `institution-keyword1-keyword2`. It should also be globally unique across all institutions in *your* GeoBlacklight index. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation
|
31
|
+
| **layer_geom_type_s** | *string* | Geometry type for layer data, using controlled vocabulary.<br/> **one of:**`"Point"` or `"Line"` or `"Polygon"` or `"Raster"` or `"Scanned Map"` or `"Image"` or `"Mixed"` | `"Point"` |
|
32
|
+
| **layer_id_s** | *string* | The complete identifier for the layer via WMS/WFS/WCS protocol. *Optional* | `"druid:vr593vj7147"` |
|
33
|
+
| **layer_modified_dt** | *date-time* | Last modification date for the metadata record, using XML Schema dateTime format (YYYY-MM-DDThh:mm:ssZ). *Optional* | `"2015-01-01T12:00:00Z"` |
|
34
|
+
| **layer_slug_s** | *string* | Identifies a layer in human-readable keywords. Note this value is visible to the user, and used for Permalinks. The value should be alpha-numeric characters separated by dashes, and is typically of the form `institution-keyword1-keyword2`. It should also be globally unique across all institutions in *your* GeoBlacklight index. See https://github.com/geoblacklight/geoblacklight/wiki/Schema for more detailed documentation.<br/> **pattern:** `^[-a-zA-Z0-9]+$` | `"stanford-andhra-pradesh-village-boundaries"` |
|
35
35
|
| **solr_geom** | *string* | Bounding box of the layer as a ENVELOPE WKT (from the CQL standard) using coordinates in (West, East, North, South) order. Note that this field is indexed as a Solr spatial (RPT) field.<br/> **pattern:** `ENVELOPE(.*,.*,.*,.*)` | `"ENVELOPE(76.76, 84.76, 19.91, 12.62)"` |
|
36
36
|
| **solr_year_i** | *integer* | *DEPRECATED* (only used by the Blacklight range plugin, not core GeoBlacklight, and generally you want a multi-valued field here): *Derived from* `dct_temporal_sm`. Year for which layer is valid and only a single value. Note that this field is indexed as a Solr numeric field. | `"1989"` |
|
37
37
|
| **uuid** | *string* | *DEPRECATED* (use `dc_identifier_s`): Unique identifier for layer that is globally unique. | `"http://purl.stanford.edu/vr593vj7147"` |
|
38
|
+
|
39
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<!--
|
2
|
+
Licensed to the Apache Software Foundation (ASF) under one or more
|
3
|
+
contributor license agreements. See the NOTICE file distributed with
|
4
|
+
this work for additional information regarding copyright ownership.
|
5
|
+
The ASF licenses this file to You under the Apache License, Version 2.0
|
6
|
+
(the "License"); you may not use this file except in compliance with
|
7
|
+
the License. You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
See the License for the specific language governing permissions and
|
15
|
+
limitations under the License.
|
16
|
+
-->
|
17
|
+
|
18
|
+
<!-- The content of this page will be statically included into the top
|
19
|
+
of the admin page. Uncomment this as an example to see there the content
|
20
|
+
will show up.
|
21
|
+
|
22
|
+
<hr>
|
23
|
+
<i>This line will appear before the first table</i>
|
24
|
+
<tr>
|
25
|
+
<td colspan="2">
|
26
|
+
This row will be appended to the end of the first table
|
27
|
+
</td>
|
28
|
+
</tr>
|
29
|
+
<hr>
|
30
|
+
|
31
|
+
-->
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" ?>
|
2
|
+
<!--
|
3
|
+
Licensed to the Apache Software Foundation (ASF) under one or more
|
4
|
+
contributor license agreements. See the NOTICE file distributed with
|
5
|
+
this work for additional information regarding copyright ownership.
|
6
|
+
The ASF licenses this file to You under the Apache License, Version 2.0
|
7
|
+
(the "License"); you may not use this file except in compliance with
|
8
|
+
the License. You may obtain a copy of the License at
|
9
|
+
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
|
12
|
+
Unless required by applicable law or agreed to in writing, software
|
13
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
See the License for the specific language governing permissions and
|
16
|
+
limitations under the License.
|
17
|
+
-->
|
18
|
+
|
19
|
+
<!-- If this file is found in the config directory, it will only be
|
20
|
+
loaded once at startup. If it is found in Solr's data
|
21
|
+
directory, it will be re-loaded every commit.
|
22
|
+
-->
|
23
|
+
|
24
|
+
<elevate>
|
25
|
+
<query text="foo bar">
|
26
|
+
<doc id="1" />
|
27
|
+
<doc id="2" />
|
28
|
+
<doc id="3" />
|
29
|
+
</query>
|
30
|
+
|
31
|
+
<query text="ipod">
|
32
|
+
<doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
|
33
|
+
<doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
|
34
|
+
</query>
|
35
|
+
|
36
|
+
</elevate>
|
@@ -0,0 +1,246 @@
|
|
1
|
+
# The ASF licenses this file to You under the Apache License, Version 2.0
|
2
|
+
# (the "License"); you may not use this file except in compliance with
|
3
|
+
# the License. You may obtain a copy of the License at
|
4
|
+
#
|
5
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
6
|
+
#
|
7
|
+
# Unless required by applicable law or agreed to in writing, software
|
8
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
# See the License for the specific language governing permissions and
|
11
|
+
# limitations under the License.
|
12
|
+
|
13
|
+
# Syntax:
|
14
|
+
# "source" => "target"
|
15
|
+
# "source".length() > 0 (source cannot be empty.)
|
16
|
+
# "target".length() >= 0 (target can be empty.)
|
17
|
+
|
18
|
+
# example:
|
19
|
+
# "??" => "A"
|
20
|
+
# "\u00C0" => "A"
|
21
|
+
# "\u00C0" => "\u0041"
|
22
|
+
# "??" => "ss"
|
23
|
+
# "\t" => " "
|
24
|
+
# "\n" => ""
|
25
|
+
|
26
|
+
# ?? => A
|
27
|
+
"\u00C0" => "A"
|
28
|
+
|
29
|
+
# ?? => A
|
30
|
+
"\u00C1" => "A"
|
31
|
+
|
32
|
+
# ?? => A
|
33
|
+
"\u00C2" => "A"
|
34
|
+
|
35
|
+
# ?? => A
|
36
|
+
"\u00C3" => "A"
|
37
|
+
|
38
|
+
# ?? => A
|
39
|
+
"\u00C4" => "A"
|
40
|
+
|
41
|
+
# ?? => A
|
42
|
+
"\u00C5" => "A"
|
43
|
+
|
44
|
+
# ?? => AE
|
45
|
+
"\u00C6" => "AE"
|
46
|
+
|
47
|
+
# ?? => C
|
48
|
+
"\u00C7" => "C"
|
49
|
+
|
50
|
+
# ?? => E
|
51
|
+
"\u00C8" => "E"
|
52
|
+
|
53
|
+
# ?? => E
|
54
|
+
"\u00C9" => "E"
|
55
|
+
|
56
|
+
# ?? => E
|
57
|
+
"\u00CA" => "E"
|
58
|
+
|
59
|
+
# ?? => E
|
60
|
+
"\u00CB" => "E"
|
61
|
+
|
62
|
+
# ?? => I
|
63
|
+
"\u00CC" => "I"
|
64
|
+
|
65
|
+
# ?? => I
|
66
|
+
"\u00CD" => "I"
|
67
|
+
|
68
|
+
# ?? => I
|
69
|
+
"\u00CE" => "I"
|
70
|
+
|
71
|
+
# ?? => I
|
72
|
+
"\u00CF" => "I"
|
73
|
+
|
74
|
+
# ?? => IJ
|
75
|
+
"\u0132" => "IJ"
|
76
|
+
|
77
|
+
# ?? => D
|
78
|
+
"\u00D0" => "D"
|
79
|
+
|
80
|
+
# ?? => N
|
81
|
+
"\u00D1" => "N"
|
82
|
+
|
83
|
+
# ?? => O
|
84
|
+
"\u00D2" => "O"
|
85
|
+
|
86
|
+
# ?? => O
|
87
|
+
"\u00D3" => "O"
|
88
|
+
|
89
|
+
# ?? => O
|
90
|
+
"\u00D4" => "O"
|
91
|
+
|
92
|
+
# ?? => O
|
93
|
+
"\u00D5" => "O"
|
94
|
+
|
95
|
+
# ?? => O
|
96
|
+
"\u00D6" => "O"
|
97
|
+
|
98
|
+
# ?? => O
|
99
|
+
"\u00D8" => "O"
|
100
|
+
|
101
|
+
# ?? => OE
|
102
|
+
"\u0152" => "OE"
|
103
|
+
|
104
|
+
# ??
|
105
|
+
"\u00DE" => "TH"
|
106
|
+
|
107
|
+
# ?? => U
|
108
|
+
"\u00D9" => "U"
|
109
|
+
|
110
|
+
# ?? => U
|
111
|
+
"\u00DA" => "U"
|
112
|
+
|
113
|
+
# ?? => U
|
114
|
+
"\u00DB" => "U"
|
115
|
+
|
116
|
+
# ?? => U
|
117
|
+
"\u00DC" => "U"
|
118
|
+
|
119
|
+
# ?? => Y
|
120
|
+
"\u00DD" => "Y"
|
121
|
+
|
122
|
+
# ?? => Y
|
123
|
+
"\u0178" => "Y"
|
124
|
+
|
125
|
+
# ?? => a
|
126
|
+
"\u00E0" => "a"
|
127
|
+
|
128
|
+
# ?? => a
|
129
|
+
"\u00E1" => "a"
|
130
|
+
|
131
|
+
# ?? => a
|
132
|
+
"\u00E2" => "a"
|
133
|
+
|
134
|
+
# ?? => a
|
135
|
+
"\u00E3" => "a"
|
136
|
+
|
137
|
+
# ?? => a
|
138
|
+
"\u00E4" => "a"
|
139
|
+
|
140
|
+
# ?? => a
|
141
|
+
"\u00E5" => "a"
|
142
|
+
|
143
|
+
# ?? => ae
|
144
|
+
"\u00E6" => "ae"
|
145
|
+
|
146
|
+
# ?? => c
|
147
|
+
"\u00E7" => "c"
|
148
|
+
|
149
|
+
# ?? => e
|
150
|
+
"\u00E8" => "e"
|
151
|
+
|
152
|
+
# ?? => e
|
153
|
+
"\u00E9" => "e"
|
154
|
+
|
155
|
+
# ?? => e
|
156
|
+
"\u00EA" => "e"
|
157
|
+
|
158
|
+
# ?? => e
|
159
|
+
"\u00EB" => "e"
|
160
|
+
|
161
|
+
# ?? => i
|
162
|
+
"\u00EC" => "i"
|
163
|
+
|
164
|
+
# ?? => i
|
165
|
+
"\u00ED" => "i"
|
166
|
+
|
167
|
+
# ?? => i
|
168
|
+
"\u00EE" => "i"
|
169
|
+
|
170
|
+
# ?? => i
|
171
|
+
"\u00EF" => "i"
|
172
|
+
|
173
|
+
# ?? => ij
|
174
|
+
"\u0133" => "ij"
|
175
|
+
|
176
|
+
# ?? => d
|
177
|
+
"\u00F0" => "d"
|
178
|
+
|
179
|
+
# ?? => n
|
180
|
+
"\u00F1" => "n"
|
181
|
+
|
182
|
+
# ?? => o
|
183
|
+
"\u00F2" => "o"
|
184
|
+
|
185
|
+
# ?? => o
|
186
|
+
"\u00F3" => "o"
|
187
|
+
|
188
|
+
# ?? => o
|
189
|
+
"\u00F4" => "o"
|
190
|
+
|
191
|
+
# ?? => o
|
192
|
+
"\u00F5" => "o"
|
193
|
+
|
194
|
+
# ?? => o
|
195
|
+
"\u00F6" => "o"
|
196
|
+
|
197
|
+
# ?? => o
|
198
|
+
"\u00F8" => "o"
|
199
|
+
|
200
|
+
# ?? => oe
|
201
|
+
"\u0153" => "oe"
|
202
|
+
|
203
|
+
# ?? => ss
|
204
|
+
"\u00DF" => "ss"
|
205
|
+
|
206
|
+
# ?? => th
|
207
|
+
"\u00FE" => "th"
|
208
|
+
|
209
|
+
# ?? => u
|
210
|
+
"\u00F9" => "u"
|
211
|
+
|
212
|
+
# ?? => u
|
213
|
+
"\u00FA" => "u"
|
214
|
+
|
215
|
+
# ?? => u
|
216
|
+
"\u00FB" => "u"
|
217
|
+
|
218
|
+
# ?? => u
|
219
|
+
"\u00FC" => "u"
|
220
|
+
|
221
|
+
# ?? => y
|
222
|
+
"\u00FD" => "y"
|
223
|
+
|
224
|
+
# ?? => y
|
225
|
+
"\u00FF" => "y"
|
226
|
+
|
227
|
+
# ??? => ff
|
228
|
+
"\uFB00" => "ff"
|
229
|
+
|
230
|
+
# ??? => fi
|
231
|
+
"\uFB01" => "fi"
|
232
|
+
|
233
|
+
# ??? => fl
|
234
|
+
"\uFB02" => "fl"
|
235
|
+
|
236
|
+
# ??? => ffi
|
237
|
+
"\uFB03" => "ffi"
|
238
|
+
|
239
|
+
# ??? => ffl
|
240
|
+
"\uFB04" => "ffl"
|
241
|
+
|
242
|
+
# ??? => ft
|
243
|
+
"\uFB05" => "ft"
|
244
|
+
|
245
|
+
# ??? => st
|
246
|
+
"\uFB06" => "st"
|