Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (1761)
Showing with 27326 additions and 543 deletions
VUE_APP_API_PREFIX= VUE_APP_ODA_PROD = 'https://oda.uib.no/opal/prod/'
VUE_APP_ODA_DEV = 'https://oda.uib.no/opal/dev/'
VUE_APP_ODD_PROD = 'https://odd.uib.no/opal/prod/'
VUE_APP_ODD_DEV = 'https://odd.uib.no/opal/dev/'
VUE_APP_IDA_DEV = 'https://ida.uib.no/opal/dev/'
VUE_APP_IDA_PROD = 'https://ida.uib.no/opal/prod/'
\ No newline at end of file
NODE_ENV=production NODE_ENV=production
VUE_APP_ENDPOINT='odd_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_dev'
VUE_APP_VERSION_LABEL=DEVELOPMENT VUE_APP_VERSION_LABEL=DEVELOPMENT
VUE_APP_API_PREFIX=
VUE_APP_API_PREFIX=https://dev.ordbok.uib.no VUE_APP_ENDPOINT='odd_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_dev'
VUE_APP_VERSION_LABEL=LOCAL VUE_APP_VERSION_LABEL=LOCAL
VUE_APP_RELEASE=test VUE_APP_RELEASE=test
NODE_ENV=production NODE_ENV=production
VUE_APP_VERSION_LABEL=Beta VUE_APP_VERSION_LABEL=Prod
VUE_APP_API_PREFIX= VUE_APP_ENDPOINT='oda_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_prod'
...@@ -21,5 +21,4 @@ yarn-error.log* ...@@ -21,5 +21,4 @@ yarn-error.log*
*.sw? *.sw?
package-lock.json
*.iml *.iml
...@@ -2,25 +2,44 @@ stages: ...@@ -2,25 +2,44 @@ stages:
- build - build
- deploy - deploy
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_COMMIT_TAG == null'
when: never
- if: '$CI_COMMIT_BRANCH'
- if: $CI_COMMIT_TAG != null
build-dev: build-dev:
image: node:latest image: node:16
tags: tags:
- spraaksamlingene_01 - group_runner_spraaksamlingene_01
stage: build stage: build
only: rules:
- master - if: $CI_COMMIT_TAG != null
when: never
- if: $CI_COMMIT_REF_NAME == 'prod'
when: manual
- when: on_success
script: script:
- |-
if [[ $CI_PIPELINE_SOURCE == "merge_request_event" ]]; then
echo "VUE_APP_RELEASE=MERGE $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME ($CI_COMMIT_SHORT_SHA)" >> .env.dev_server
else
echo "VUE_APP_RELEASE=BRANCH $CI_COMMIT_BRANCH ($CI_COMMIT_SHORT_SHA)" >> .env.dev_server
fi
- npm install --progress=false - npm install --progress=false
- npm run build -- --mode dev_server - npm run build -- --mode dev_server
- 'echo -e "\nDisallow: /" >> dist/robots.txt'
artifacts: artifacts:
expire_in: 1 week expire_in: 1 week
paths: paths:
- dist - dist
build-prod: build-prod:
image: node:latest image: node:16
tags: tags:
- spraaksamlingene_01 - group_runner_spraaksamlingene_01
stage: build stage: build
only: only:
- /^release_.*$/ - /^release_.*$/
...@@ -33,13 +52,43 @@ build-prod: ...@@ -33,13 +52,43 @@ build-prod:
paths: paths:
- dist - dist
.build-sitemap:
tags:
- group_runner_spraaksamlingene_01
image: "python:3.9"
stage: "build"
script:
- curl "https://ord.uib.no/bm/fil/lemma.json" > "bm_lemma.json"
- curl "https://ord.uib.no/nn/fil/lemma.json" > "nn_lemma.json"
- python3 src/sitemap/sitemap.py
artifacts:
expire_in: 1 week
paths:
- src/sitemap/xml
build-sitemap-dev:
extends: .build-sitemap
when: manual
build-sitemap-prod:
extends: .build-sitemap
needs: [build-prod]
only:
- /^release_.*$/
deploy-dev: deploy-dev:
image: uibit/awscli:latest image: uibit/awscli:latest
tags: tags:
- spraaksamlingene_01 - group_runner_spraaksamlingene_01
stage: deploy stage: deploy
only: rules:
- master - if: $CI_COMMIT_TAG != null
when: never
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_PIPELINE_SOURCE == 'merge_request_event'
when: on_success
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE != 'merge_request_event'
when: manual
script: script:
- rm -rf ~/.aws - rm -rf ~/.aws
- mv .aws ~/ - mv .aws ~/
...@@ -53,7 +102,7 @@ deploy-dev: ...@@ -53,7 +102,7 @@ deploy-dev:
"AltDomainName=dev.ordbok.uib.no" "AltDomainName=dev.ordbok.uib.no"
"DomainName=beta.ordbok-dev.aws.uib.no" "DomainName=beta.ordbok-dev.aws.uib.no"
"ZoneDomainName=ordbok-dev.aws.uib.no" "ZoneDomainName=ordbok-dev.aws.uib.no"
"PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_DEV_ACCOUNT}:function:rewrite_request:5" "PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_DEV_ACCOUNT}:function:rewrite_request:12"
"OrdbokCacheOriginDomain=8mwl23g34a.execute-api.eu-west-1.amazonaws.com" "OrdbokCacheOriginDomain=8mwl23g34a.execute-api.eu-west-1.amazonaws.com"
"OrdbokCacheStage=DEV" "OrdbokCacheStage=DEV"
--no-fail-on-empty-changeset --no-fail-on-empty-changeset
...@@ -70,11 +119,12 @@ deploy-dev: ...@@ -70,11 +119,12 @@ deploy-dev:
deploy-prod: deploy-prod:
image: uibit/awscli:latest image: uibit/awscli:latest
tags: tags:
- spraaksamlingene_01 - group_runner_spraaksamlingene_01
stage: deploy stage: deploy
only: only:
- /^release_.*$/ - /^release_.*$/
script: script:
- cp src/sitemap/xml/* dist
- rm -rf ~/.aws - rm -rf ~/.aws
- mv .aws ~/ - mv .aws ~/
- export AWS_ACCESS_KEY_ID=$AWS_PROD_ACCESS_KEY_ID - export AWS_ACCESS_KEY_ID=$AWS_PROD_ACCESS_KEY_ID
...@@ -84,7 +134,7 @@ deploy-prod: ...@@ -84,7 +134,7 @@ deploy-prod:
- aws cloudformation deploy --stack-name ${STACK_NAME} - aws cloudformation deploy --stack-name ${STACK_NAME}
--template-file "aws/beta.ordbok.uib.no_stack.yaml" --template-file "aws/beta.ordbok.uib.no_stack.yaml"
--parameter-overrides "CertificateArn=${CERT_ARN}" --parameter-overrides "CertificateArn=${CERT_ARN}"
"PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_PROD_ACCOUNT}:function:path_rewrite:13" "PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_PROD_ACCOUNT}:function:path_rewrite:18"
"OrdbokCacheOriginDomain=n5speug9cl.execute-api.eu-west-1.amazonaws.com" "OrdbokCacheOriginDomain=n5speug9cl.execute-api.eu-west-1.amazonaws.com"
"OrdbokCacheStage=PROD" "OrdbokCacheStage=PROD"
--no-fail-on-empty-changeset --no-fail-on-empty-changeset
......
...@@ -27,3 +27,16 @@ npm run lint ...@@ -27,3 +27,16 @@ npm run lint
### Customize configuration ### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/). See [Configuration Reference](https://cli.vuejs.org/config/).
### Universell utforming
Nettsiden kan brukes med en skjermleser. Man kan navigere gjennom siden med Tab. Pileknapper må brukes for å navigere mellom
radioknapper ved valget av målformen og ved navigeringen opp/ned i dropdown-menyen i søkefeltet. Det finnes en ekspress-navigasjon
til søkefeltet, men snarveien kan være forskjellig avhengig av nettleseren og operativsystemet. "Nøkkelbokstav" er "s": f.eks,
på Linux er det alt+s i Chrome og shift+alt+s i Firefox. En full oversikt over flere nettlesere og OS finnes i en tabell
her https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/accesskey
### Workflow
Create a merge request and merge your branch into master if and only if the issue is tagged as ready for prod.
Before submitting the merge request, you must pull any changes from the master branch, resolve merge conflicts and test the result on the dev server.
Deployment to dev server is now accessible on all branches. You can re-run deploy-dev without build-dev to deploy a particular branch to dev (within
the expiry date of 1 week).
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<title>
API for ordbok.uib.no (beta) - CodiMD
</title>
<link rel="icon" type="image/png" href="https://pad.app.uib.no/favicon.png">
<link rel="apple-touch-icon" href="https://pad.app.uib.no/apple-touch-icon.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.0/css/bootstrap.min.css" integrity="sha256-H0KfTigpUV+0/5tn2HXC0CPwhhDhWgSawJdnFd0CGCo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fork-awesome/1.1.3/css/fork-awesome.min.css" integrity="sha256-ZhApazu+kejqTYhMF+1DzNKjIzP7KXu6AzyXcC1gMus=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css" integrity="sha256-3iu9jgsy9TpTwXKb7bNQzqWekRX7pPK+2OLj3R922fo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.5.1/themes/prism.min.css" integrity="sha256-vtR0hSWRc3Tb26iuN2oZHt3KRUomwTufNIf5/4oeCyg=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github-gist.min.css" integrity="sha256-tAflq+ymku3Khs+I/WcAneIlafYgDiOQ9stIHH985Wo=" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/emojify.js/1.1.0/css/basic/emojify.min.css" integrity="sha256-UOrvMOsSDSrW6szVLe8ZDZezBxh5IoIfgTwdNDgTjiU=" crossorigin="anonymous" />
<style>
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,600,600italic,300italic,300|Source+Serif+Pro|Source+Code+Pro:400,300,500&subset=latin,latin-ext);.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body:after,.markdown-body:before{display:table;content:""}.markdown-body:after{clear:both}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#c00}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e7e7e7;border:0}.markdown-body blockquote{padding:0 1em;color:#777;border-left:.25em solid #ddd}.night .markdown-body blockquote{color:#bcbcbc}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body .loweralpha{list-style-type:lower-alpha}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.night .markdown-body h1,.night .markdown-body h2,.night .markdown-body h3,.night .markdown-body h4,.night .markdown-body h5,.night .markdown-body h6{color:#ddd}.markdown-body h1 .fa-link,.markdown-body h2 .fa-link,.markdown-body h3 .fa-link,.markdown-body h4 .fa-link,.markdown-body h5 .fa-link,.markdown-body h6 .fa-link{color:#000;vertical-align:middle;visibility:hidden;font-size:16px}.night .markdown-body h1 .fa-link,.night .markdown-body h2 .fa-link,.night .markdown-body h3 .fa-link,.night .markdown-body h4 .fa-link,.night .markdown-body h5 .fa-link,.night .markdown-body h6 .fa-link{color:#fff}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .fa-link,.markdown-body h2:hover .anchor .fa-link,.markdown-body h3:hover .anchor .fa-link,.markdown-body h4:hover .anchor .fa-link,.markdown-body h5:hover .anchor .fa-link,.markdown-body h6:hover .anchor .fa-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eee}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#777}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol.no-list,.markdown-body ul.no-list{padding:0;list-style-type:none}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown-body table th{font-weight:700}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #ddd}.markdown-body table tr{background-color:#fff;border-top:1px solid #ccc}.night .markdown-body table tr{background-color:#5f5f5f}.markdown-body table tr:nth-child(2n){background-color:#f8f8f8}.night .markdown-body table tr:nth-child(2n){background-color:#4f4f4f}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #ddd}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#333}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:.2em 0;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.night .markdown-body code,.night .markdown-body tt{color:#eee;background-color:hsla(0,0%,90.2%,.36)}.markdown-body code:after,.markdown-body code:before,.markdown-body tt:after,.markdown-body tt:before{letter-spacing:-.2em;content:"\00a0"}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f7f7f7;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before,.markdown-body pre tt:after,.markdown-body pre tt:before{content:normal}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-line-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:700;background:#f8f8f8;border-top:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid;border-color:#ccc #ccc #bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.news .alert .markdown-body blockquote{padding:0 0 0 40px;border:0}.activity-tab .news .alert .commits,.activity-tab .news .markdown-body blockquote{padding-left:0}.task-list-item{list-style-type:none}.task-list-item label{font-weight:400}.task-list-item.enabled label{cursor:pointer}.task-list-item+.task-list-item{margin-top:3px}.task-list-item-checkbox{float:left;margin:.31em 0 .2em -1.3em!important;vertical-align:middle;cursor:default!important}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;padding-top:40px;padding-bottom:40px;max-width:758px;overflow:visible!important}.markdown-body pre{border:inherit!important}.night .markdown-body pre{filter:invert(100%)}.markdown-body code{color:inherit!important}.markdown-body pre code .wrapper{display:-webkit-inline-flex;display:-moz-inline-flex;display:-ms-inline-flex;display:-o-inline-flex;display:inline-flex}.markdown-body pre code .gutter{float:left;overflow:hidden;-webkit-user-select:none;user-select:none}.markdown-body pre code .gutter.linenumber{text-align:right;position:relative;display:inline-block;cursor:default;z-index:4;padding:0 8px 0 0;min-width:20px;box-sizing:content-box;color:#afafaf!important;border-right:3px solid #6ce26c!important}.markdown-body pre code .gutter.linenumber>span:before{content:attr(data-linenumber)}.markdown-body pre code .code{float:left;margin:0 0 0 16px}.markdown-body .gist .line-numbers{border-left:none;border-top:none;border-bottom:none}.markdown-body .gist .line-data{border:none}.markdown-body .gist table{border-spacing:0;border-collapse:inherit!important}.night .markdown-body .gist table tr:nth-child(2n){background-color:#ddd}.markdown-body code[data-gist-id]{background:none;padding:0;filter:invert(100%)}.markdown-body code[data-gist-id]:after,.markdown-body code[data-gist-id]:before{content:""}.markdown-body code[data-gist-id] .blob-num{border:unset}.markdown-body code[data-gist-id] table{overflow:unset;margin-bottom:unset}.markdown-body code[data-gist-id] table tr{background:unset}.markdown-body[dir=rtl] pre{direction:ltr}.markdown-body[dir=rtl] code{direction:ltr;unicode-bidi:embed}.markdown-body .alert>p{margin-bottom:0}.markdown-body pre.abc,.markdown-body pre.flow-chart,.markdown-body pre.graphviz,.markdown-body pre.mermaid,.markdown-body pre.sequence-diagram{text-align:center;background-color:inherit;border-radius:0;white-space:inherit}.night .markdown-body pre.graphviz .graph>polygon{fill:#333}.night .markdown-body pre.mermaid .sectionTitle,.night .markdown-body pre.mermaid .titleText,.night .markdown-body pre.mermaid text{fill:#fff}.markdown-body pre.abc>code,.markdown-body pre.flow-chart>code,.markdown-body pre.graphviz>code,.markdown-body pre.mermaid>code,.markdown-body pre.sequence-diagram>code{text-align:left}.markdown-body pre.abc>svg,.markdown-body pre.flow-chart>svg,.markdown-body pre.graphviz>svg,.markdown-body pre.mermaid>svg,.markdown-body pre.sequence-diagram>svg{max-width:100%;height:100%}.night .markdown-body .abc path{fill:#eee}.night .markdown-body .abc path.note_selected{fill:##4DD0E1}.night tspan{fill:#fefefe}.night pre rect{fill:transparent}.night pre.flow-chart path,.night pre.flow-chart rect{stroke:#fff}.markdown-body pre>code.wrap{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.markdown-body .alert>p,.markdown-body .alert>ul{margin-bottom:0}.markdown-body summary{display:list-item}.markdown-body summary:focus{outline:none}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none}.markdown-body figure{margin:1em 40px}.markdown-body img{background-color:transparent}.vimeo,.youtube{cursor:pointer;display:table;text-align:center;background-position:50%;background-repeat:no-repeat;background-size:contain;background-color:#000;overflow:hidden}.vimeo,.youtube{position:relative;width:100%}.youtube{padding-bottom:56.25%}.vimeo img{width:100%;object-fit:contain;z-index:0}.youtube img{object-fit:cover;z-index:0}.vimeo iframe,.youtube iframe,.youtube img{width:100%;height:100%;position:absolute;top:0;left:0}.vimeo iframe,.youtube iframe{vertical-align:middle;z-index:1}.vimeo .icon,.youtube .icon{position:absolute;height:auto;width:auto;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;opacity:.3;-webkit-transition:opacity .2s;transition:opacity .2s;z-index:0}.vimeo:hover .icon,.youtube:hover .icon{opacity:.6;-webkit-transition:opacity .2s;transition:opacity .2s}.slideshare .inner,.speakerdeck .inner{position:relative;width:100%}.slideshare .inner iframe,.speakerdeck .inner iframe{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%}.MJX_Assistive_MathML{display:none}.ui-infobar{position:relative;z-index:2;max-width:758px;margin-top:25px;margin-bottom:-25px;color:#777}.toc .invisable-node{list-style-type:none}.ui-toc{position:fixed;bottom:20px;z-index:10000}.ui-toc-label{opacity:.3;background-color:#ccc;border:none}.ui-toc-label,.ui-toc .open .ui-toc-label{-webkit-transition:opacity .2s;transition:opacity .2s}.ui-toc .open .ui-toc-label{opacity:1;color:#fff}.ui-toc-label:focus{opacity:.3;background-color:#ccc;color:#000}.ui-toc-label:hover{opacity:1;background-color:#ccc;-webkit-transition:opacity .2s;transition:opacity .2s}.ui-toc-dropdown{margin-top:23px;margin-bottom:20px;padding-left:10px;padding-right:10px;max-width:45vw;width:25vw;max-height:70vh;overflow:auto;text-align:inherit}.ui-toc-dropdown>.toc{max-height:calc(70vh - 100px);overflow:auto}.ui-toc-dropdown[dir=rtl] .nav{padding-right:0;letter-spacing:.0029em}.ui-toc-dropdown a{overflow:hidden;text-overflow:ellipsis;white-space:pre}.ui-toc-dropdown .nav>li>a{display:block;padding:4px 20px;font-size:13px;font-weight:500;color:#767676}.ui-toc-dropdown .nav>li:first-child:last-child>ul,.ui-toc-dropdown .toc.expand ul{display:block}.ui-toc-dropdown .nav>li>a:focus,.ui-toc-dropdown .nav>li>a:hover{padding-left:19px;color:#000;text-decoration:none;background-color:transparent;border-left:1px solid #000}.night .ui-toc-dropdown .nav>li>a:focus,.night .ui-toc-dropdown .nav>li>a:hover{color:#fff;border-left-color:#fff}.ui-toc-dropdown[dir=rtl] .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav>li>a:hover{padding-right:19px;border-left:none;border-right:1px solid #000}.ui-toc-dropdown .nav>.active:focus>a,.ui-toc-dropdown .nav>.active:hover>a,.ui-toc-dropdown .nav>.active>a{padding-left:18px;font-weight:700;color:#000;background-color:transparent;border-left:2px solid #000}.night .ui-toc-dropdown .nav>.active:focus>a,.night .ui-toc-dropdown .nav>.active:hover>a,.night .ui-toc-dropdown .nav>.active>a{color:#fff;border-left:2px solid #fff}.ui-toc-dropdown[dir=rtl] .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav>.active>a{padding-right:18px;border-left:none;border-right:2px solid #000}.ui-toc-dropdown .nav .nav{display:none;padding-bottom:10px}.ui-toc-dropdown .nav>.active>ul{display:block}.ui-toc-dropdown .nav .nav>li>a{padding-top:1px;padding-bottom:1px;padding-left:30px;font-size:12px;font-weight:400}.night .ui-toc-dropdown .nav>li>a{color:#aaa}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a{padding-right:30px}.ui-toc-dropdown .nav .nav>li>ul>li>a{padding-top:1px;padding-bottom:1px;padding-left:40px;font-size:12px;font-weight:400}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a{padding-right:40px}.ui-toc-dropdown .nav .nav>li>a:focus,.ui-toc-dropdown .nav .nav>li>a:hover{padding-left:29px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>a:hover{padding-right:29px}.ui-toc-dropdown .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown .nav .nav>li>ul>li>a:hover{padding-left:39px}.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:focus,.ui-toc-dropdown[dir=rtl] .nav .nav>li>ul>li>a:hover{padding-right:39px}.ui-toc-dropdown .nav .nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>a{padding-left:28px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>a{padding-right:28px}.ui-toc-dropdown .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown .nav .nav>.active>.nav>.active>a{padding-left:38px;font-weight:500}.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:focus>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active:hover>a,.ui-toc-dropdown[dir=rtl] .nav .nav>.active>.nav>.active>a{padding-right:38px}.markdown-body[lang^=ja]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,Hiragino Kaku Gothic Pro,ヒラギノ角ゴ Pro W3,Osaka,Meiryo,メイリオ,MS Gothic,MS ゴシック,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang^=ja]{font-family:Source Sans Pro,Helvetica,Arial,Meiryo UI,MS PGothic,MS Pゴシック,sans-serif}.markdown-body[lang=zh-tw]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,PingFang TC,Microsoft JhengHei,微軟正黑,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang=zh-tw]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft JhengHei UI,微軟正黑UI,sans-serif}.markdown-body[lang=zh-cn]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Helvetica,Arial,PingFang SC,Microsoft YaHei,微软雅黑,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}.ui-toc-dropdown[lang=zh-cn]{font-family:Source Sans Pro,Helvetica,Arial,Microsoft YaHei UI,微软雅黑UI,sans-serif}.ui-affix-toc{position:fixed;top:0;max-width:15vw;max-height:70vh;overflow:auto}.back-to-top,.expand-toggle,.go-to-bottom{display:block;padding:4px 10px;margin-top:10px;margin-left:10px;font-size:12px;font-weight:500;color:#999}.back-to-top:focus,.back-to-top:hover,.expand-toggle:focus,.expand-toggle:hover,.go-to-bottom:focus,.go-to-bottom:hover{color:#563d7c;text-decoration:none}.back-to-top,.go-to-bottom{margin-top:0}.ui-user-icon{width:20px;height:20px;display:block;border-radius:3px;margin-top:2px;margin-bottom:2px;margin-right:5px;background-position:50%;background-repeat:no-repeat;background-size:contain}.ui-user-icon.small{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:0 0 .2em}small span{line-height:22px}small .dropdown{display:inline-block}small .dropdown a:focus,small .dropdown a:hover{text-decoration:none}.unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.night .navbar{background:#333;border-bottom-color:#333;color:#eee}.night .navbar a{color:#eee}.markdown-body h1[id]:before,.markdown-body h2[id]:before,.markdown-body h3[id]:before,.markdown-body h4[id]:before,.markdown-body h5[id]:before,.markdown-body h6[id]:before{display:block;content:" ";margin-top:-55px;height:55px;visibility:hidden}@media print{blockquote,div,img,pre,table{page-break-inside:avoid!important}a[href]:after{font-size:12px!important}}.markdown-body.slides{position:relative;z-index:1;color:#222}.markdown-body.slides:before{content:"";display:block;position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:currentColor;box-shadow:0 0 0 50vw}.markdown-body.slides section[data-markdown]{position:relative;margin-bottom:1.5em;background-color:#fff;text-align:center}.markdown-body.slides section[data-markdown] code{text-align:left}.markdown-body.slides section[data-markdown]:before{content:"";display:block;padding-bottom:56.23%}.markdown-body.slides section[data-markdown]>div:first-child{position:absolute;top:50%;left:1em;right:1em;transform:translateY(-50%);max-height:100%;overflow:hidden}.markdown-body.slides section[data-markdown]>ul{display:inline-block}.markdown-body.slides>section>section+section:after{content:"";position:absolute;top:-1.5em;right:1em;height:1.5em;border:3px solid #777}.markdown-body.slides aside.notes{display:none}.markdown-body.slides ol,.markdown-body.slides ul{display:inline-block;text-align:left;margin:0 0 0 1em;padding:0}.markdown-body.slides table{width:50%;margin:0 auto;border-collapse:collapse;border-spacing:0;display:table}.markdown-body.slides table td,.markdown-body.slides table th{text-align:left;padding:.2em .5em;border:none;border-bottom:1px solid}.markdown-body.slides table tr{border-top:0;background-color:#fff}.markdown-body.slides table tr:nth-child(2n){background-color:inherit}.markdown-body.slides table tbody tr:last-child td,.markdown-body.slides table tbody tr:last-child th{border-bottom:none}.markdown-body.slides h1,.markdown-body.slides h2{border-bottom:0}.night .markdown-body.slides h1,.night .markdown-body.slides h2,.night .markdown-body.slides h3,.night .markdown-body.slides h4,.night .markdown-body.slides h5,.night .markdown-body.slides h6{color:#000}.markdown-body section>section:last-child{margin-bottom:1.5em!important}.ui-view-area.black{background-color:#000!important}body{font-smoothing:subpixel-antialiased!important;-webkit-font-smoothing:subpixel-antialiased!important;-moz-osx-font-smoothing:auto!important;text-shadow:0 0 1em transparent,1px 1px 1.2px rgba(0,0,0,.004);-webkit-overflow-scrolling:touch;font-family:Source Sans Pro,Helvetica,Arial,sans-serif;letter-spacing:.025em}.focus,:focus{outline:none!important}::-moz-focus-inner{border:0!important}body.modal-open{overflow-y:auto;padding-right:0!important}
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js" integrity="sha256-8E4Is26QH0bD52WoQpcB+R/tcWQtpzlCojrybUd7Mxo=" crossorigin="anonymous"></script>
<![endif]-->
</head>
<body>
<div id="doc" class="markdown-body container-fluid"><h1 id="API-for-ordbokuibno-beta"><a class="anchor hidden-xs" href="#API-for-ordbokuibno-beta" title="API-for-ordbokuibno-beta"><i class="fa fa-link"></i></a>API for <a href="http://ordbok.uib.no" target="_blank" rel="noopener">ordbok.uib.no</a> (beta)</h1><h2 id="Innledning"><a class="anchor hidden-xs" href="#Innledning" title="Innledning"><i class="fa fa-link"></i></a>Innledning</h2><p>Denne REST-APIen gir tilgang til JSON-representasjon av alle oppslag (artikler) i ordbøkene for bokmål og nynorsk fra Språkrådet og UiB. Det er fire endepunkt i APIen: <a href="#Direkte-oppslag">direkte oppslag</a>, <a href="#Teksts%C3%B8k">tekstsøk</a>, <a href="#Forslag">forslag</a> og <a href="#Metadata">ordbok-metadata</a></p><p>Alle API-kall er på formen:<br>
<code>/api/dict/{dict_id}[/article/{article_id}|(search|suggest)?q={query}]</code></p><p>Variabler:</p><ul>
<li><code>dict_id</code>:
<ul>
<li><code>bob</code> for bokmål</li>
<li><code>nob</code> for nynorsk</li>
<li><code>bob,no</code> for begge språk (bare for søk/forslag)</li>
</ul>
</li>
<li><code>article_id</code>: numerisk id for en ordboksartikkel</li>
<li><code>query</code>: Søkeuttrykk</li>
</ul><h2 id="Direkte-oppslag"><a class="anchor hidden-xs" href="#Direkte-oppslag" title="Direkte-oppslag"><i class="fa fa-link"></i></a>Direkte oppslag</h2><p>Dersom man kjenner den numeriske IDen til en artikkel kan man slå den opp vha. dette endepunktet.</p><h3 id="Eksempel-på-direkte-oppslag"><a class="anchor hidden-xs" href="#Eksempel-på-direkte-oppslag" title="Eksempel-på-direkte-oppslag"><i class="fa fa-link"></i></a>Eksempel på direkte oppslag</h3><p>Spesifikasjonen til denne operasjonen finner du <a href="https://beta.ordbok.uib.no/api/swagger-ui.html#/default/get_dict__dict_id__article__art_id_" target="_blank" rel="noopener">her</a></p><pre><code class="http hljs"><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/dict/bob/article/69947</span> HTTP/1.1
<span class="hljs-attribute">Accept</span>: application/json
<span class="hljs-attribute">x-api-key</span>: &lt;API-nøkkel&gt;
</code></pre><p>…resulterer i</p><pre><code class="http hljs">HTTP/1.1 <span class="hljs-number">200</span> Ok
<span class="hljs-attribute">Content-Type</span>: application/json
<span class="json">{
<span class="hljs-attr">"lemmas"</span>: [
{
<span class="hljs-attr">"lemma"</span>: <span class="hljs-string">"tja"</span>,
<span class="hljs-attr">"id"</span>: <span class="hljs-number">69947</span>
}
],
<span class="hljs-attr">"article_id"</span>: <span class="hljs-number">61167</span>,
<span class="hljs-attr">"body"</span>: {
}
}
</span></code></pre><ul>
<li><code>lemmas</code>: Ett eller flere oppslagsord som artikkelen beskriver. Elementene i denne listen er på et format som er beskrevet <a href="https://ordbank.uib.no/api/guide.html" target="_blank" rel="noopener">her</a></li>
<li><code>article_id</code>: Artikkelens ID, som i forespørselen</li>
<li><code>body</code>: Selve innholdet i artikkelen, formatet er beskrevet <a href="#Artikkelkroppen">her</a></li>
</ul><h2 id="Tekstsøk"><a class="anchor hidden-xs" href="#Tekstsøk" title="Tekstsøk"><i class="fa fa-link"></i></a>Tekstsøk</h2><p>Denne formen for søk leter etter søketeksten i alle bøyningsformer i oppslagsord, samt i artikkelelementer av typen <code>usage</code> som beskrives senere.</p><h3 id="Eksempel-på-søk"><a class="anchor hidden-xs" href="#Eksempel-på-søk" title="Eksempel-på-søk"><i class="fa fa-link"></i></a>Eksempel på søk</h3><pre><code class="http hljs"><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/dict/bob/search?q=katt</span> HTTP/1.1
<span class="hljs-attribute">Accept</span>: application/json
<span class="hljs-attribute">x-api-key</span>: &lt;API-nøkkel&gt;
</code></pre><p>…resulterer i</p><pre><code class="http hljs">HTTP/1.1 <span class="hljs-number">200</span> Ok
<span class="hljs-attribute">Content-Type</span>: application/json
<span class="json">[
{
<span class="hljs-attr">"lemmas"</span>: [
{
<span class="hljs-attr">"lemma"</span>: <span class="hljs-string">"katt"</span>,
<span class="hljs-attr">"id"</span>: <span class="hljs-number">34290</span>
}
],
<span class="hljs-attr">"article_id"</span>: <span class="hljs-number">29022</span>,
<span class="hljs-attr">"score"</span>: <span class="hljs-number">31.717403</span>,
<span class="hljs-attr">"dict_id"</span>: <span class="hljs-string">"bob"</span>,
<span class="hljs-attr">"body"</span>: {}
},
{},
{}
]
</span></code></pre><p>Resultatet er en liste av objekter (som det man får ved direkte oppslag), men med to ekstra elementer:</p><ul>
<li><code>score</code>: Et mål på hvor god match denne artikkelen er ift. søket, treffene er sortert synkende etter dette måltallet</li>
<li><code>dict_id</code>: ID på ordboken artikkelen kommer fra (for tospråklig søk)</li>
</ul><h2 id="Forslag"><a class="anchor hidden-xs" href="#Forslag" title="Forslag"><i class="fa fa-link"></i></a>Forslag</h2><p>Fungerer som <a href="#Teksts%C3%B8k">tekstsøk</a>, men returnerer bare artikler for ord som begynner med søkeuttrykket. Her er heller ingen <code>score</code> inkludert. Kan brukes til <em>autocomplete.</em></p><h3 id="Eksempel-på-spørring"><a class="anchor hidden-xs" href="#Eksempel-på-spørring" title="Eksempel-på-spørring"><i class="fa fa-link"></i></a>Eksempel på spørring</h3><pre><code class="http hljs"><span class="hljs-keyword">GET</span> <span class="hljs-string">/api/dict/bob/suggest?q=katt</span> HTTP/1.1
<span class="hljs-attribute">Accept</span>: application/json
<span class="hljs-attribute">x-api-key</span>: &lt;API-nøkkel&gt;
</code></pre><h2 id="Artikkelkroppen"><a class="anchor hidden-xs" href="#Artikkelkroppen" title="Artikkelkroppen"><i class="fa fa-link"></i></a>Artikkelkroppen</h2><p>Artikkelkroppen samsvarer med <a href="https://git.app.uib.no/spraksamlingane/ordbok-json-schema/raw/article_body/v0.5.1/article_body.json" target="_blank" rel="noopener">dette JSON-skjemaet</a></p></div>
<div class="ui-toc dropup unselectable hidden-print" style="display:none;">
<div class="pull-right dropdown">
<a id="tocLabel" class="ui-toc-label btn btn-default" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" title="Table of content">
<i class="fa fa-bars"></i>
</a>
<ul id="ui-toc" class="ui-toc-dropdown dropdown-menu" aria-labelledby="tocLabel">
<div class="toc"><ul class="nav">
<li class=""><a href="#API-for-ordbokuibno-beta" title="API for ordbok.uib.no (beta)">API for ordbok.uib.no (beta)</a><ul class="nav">
<li><a href="#Innledning" title="Innledning">Innledning</a></li>
<li class=""><a href="#Direkte-oppslag" title="Direkte oppslag">Direkte oppslag</a><ul class="nav">
<li class=""><a href="#Eksempel-på-direkte-oppslag" title="Eksempel på direkte oppslag">Eksempel på direkte oppslag</a></li>
</ul>
</li>
<li class=""><a href="#Tekstsøk" title="Tekstsøk">Tekstsøk</a><ul class="nav">
<li class=""><a href="#Eksempel-på-søk" title="Eksempel på søk">Eksempel på søk</a></li>
</ul>
</li>
<li><a href="#Forslag" title="Forslag">Forslag</a><ul class="nav">
<li><a href="#Eksempel-på-spørring" title="Eksempel på spørring">Eksempel på spørring</a></li>
</ul>
</li>
<li class=""><a href="#Artikkelkroppen" title="Artikkelkroppen">Artikkelkroppen</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div>
</ul>
</div>
</div>
<div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="top:17px;display:none;" >
<div class="toc"><ul class="nav">
<li class=""><a href="#API-for-ordbokuibno-beta" title="API for ordbok.uib.no (beta)">API for ordbok.uib.no (beta)</a><ul class="nav">
<li><a href="#Innledning" title="Innledning">Innledning</a></li>
<li class=""><a href="#Direkte-oppslag" title="Direkte oppslag">Direkte oppslag</a><ul class="nav">
<li class=""><a href="#Eksempel-på-direkte-oppslag" title="Eksempel på direkte oppslag">Eksempel på direkte oppslag</a></li>
</ul>
</li>
<li class=""><a href="#Tekstsøk" title="Tekstsøk">Tekstsøk</a><ul class="nav">
<li class=""><a href="#Eksempel-på-søk" title="Eksempel på søk">Eksempel på søk</a></li>
</ul>
</li>
<li><a href="#Forslag" title="Forslag">Forslag</a><ul class="nav">
<li><a href="#Eksempel-på-spørring" title="Eksempel på spørring">Eksempel på spørring</a></li>
</ul>
</li>
<li class=""><a href="#Artikkelkroppen" title="Artikkelkroppen">Artikkelkroppen</a></li>
</ul>
</li>
</ul>
</div><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.0/js/bootstrap.min.js" integrity="sha256-kJrlY+s09+QoWjpkOrXXwhxeaoDz9FW5SaxF8I0DibQ=" crossorigin="anonymous" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gist-embed/2.6.0/gist-embed.min.js" integrity="sha256-KyF2D6xPIJUW5sUDSs93vWyZm+1RzIpKCexxElmxl8g=" crossorigin="anonymous" defer></script>
<script>
var markdown = $(".markdown-body");
//smooth all hash trigger scrolling
function smoothHashScroll() {
var hashElements = $("a[href^='#']").toArray();
for (var i = 0; i < hashElements.length; i++) {
var element = hashElements[i];
var $element = $(element);
var hash = element.hash;
if (hash) {
$element.on('click', function (e) {
// store hash
var hash = this.hash;
if ($(hash).length <= 0) return;
// prevent default anchor click behavior
e.preventDefault();
// animate
$('body, html').stop(true, true).animate({
scrollTop: $(hash).offset().top
}, 100, "linear", function () {
// when done, add hash to url
// (default click behaviour)
window.location.hash = hash;
});
});
}
}
}
smoothHashScroll();
var toc = $('.ui-toc');
var tocAffix = $('.ui-affix-toc');
var tocDropdown = $('.ui-toc-dropdown');
//toc
tocDropdown.click(function (e) {
e.stopPropagation();
});
var enoughForAffixToc = true;
function generateScrollspy() {
$(document.body).scrollspy({
target: ''
});
$(document.body).scrollspy('refresh');
if (enoughForAffixToc) {
toc.hide();
tocAffix.show();
} else {
tocAffix.hide();
toc.show();
}
$(document.body).scroll();
}
function windowResize() {
//toc right
var paddingRight = parseFloat(markdown.css('padding-right'));
var right = ($(window).width() - (markdown.offset().left + markdown.outerWidth() - paddingRight));
toc.css('right', right + 'px');
//affix toc left
var newbool;
var rightMargin = (markdown.parent().outerWidth() - markdown.outerWidth()) / 2;
//for ipad or wider device
if (rightMargin >= 133) {
newbool = true;
var affixLeftMargin = (tocAffix.outerWidth() - tocAffix.width()) / 2;
var left = markdown.offset().left + markdown.outerWidth() - affixLeftMargin;
tocAffix.css('left', left + 'px');
} else {
newbool = false;
}
if (newbool != enoughForAffixToc) {
enoughForAffixToc = newbool;
generateScrollspy();
}
}
$(window).resize(function () {
windowResize();
});
$(document).ready(function () {
windowResize();
generateScrollspy();
});
//remove hash
function removeHash() {
window.location.hash = '';
}
var backtotop = $('.back-to-top');
var gotobottom = $('.go-to-bottom');
backtotop.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToTop)
scrollToTop();
removeHash();
});
gotobottom.click(function (e) {
e.preventDefault();
e.stopPropagation();
if (scrollToBottom)
scrollToBottom();
removeHash();
});
var toggle = $('.expand-toggle');
var tocExpand = false;
checkExpandToggle();
toggle.click(function (e) {
e.preventDefault();
e.stopPropagation();
tocExpand = !tocExpand;
checkExpandToggle();
})
function checkExpandToggle () {
var toc = $('.ui-toc-dropdown .toc');
var toggle = $('.expand-toggle');
if (!tocExpand) {
toc.removeClass('expand');
toggle.text('Expand all');
} else {
toc.addClass('expand');
toggle.text('Collapse all');
}
}
function scrollToTop() {
$('body, html').stop(true, true).animate({
scrollTop: 0
}, 100, "linear");
}
function scrollToBottom() {
$('body, html').stop(true, true).animate({
scrollTop: $(document.body)[0].scrollHeight
}, 100, "linear");
}
</script>
</body>
</html>
...@@ -23,9 +23,6 @@ div#main { ...@@ -23,9 +23,6 @@ div#main {
text-align: center; text-align: center;
} }
a {
text-decoration: none;
}
a img { a img {
...@@ -51,18 +48,11 @@ p { ...@@ -51,18 +48,11 @@ p {
<div id="main"> <div id="main">
<h1>Ordbok-API</h1> <h1>Ordbok-API</h1>
<h3>Hva er dette?</h3> <h3>Hva er dette?</h3>
<p>Gjennom denne tjenesten kan man gjøre oppslag i alle ord registrert i Bokmåls- og Nynorskordboka. Man trenger en API-nøkkel for å bruke tjenesten. Denne sendes ut <p>Gjennom denne ord.uib.no kan man gjøre oppslag i alle ord registrert i Bokmåls- og Nynorskordboka. Vi tilbyr foreløpig interaktiv dokumentasjon på engelsk og en mer omfattende brukerveiledning på norsk.
etter avtale, kontakt <a href="mailto:ordbokene@uib.no">ordbokene@uib.no</a> for mer informasjon. API-et er todelt, en åpen del som kan brukes av alle som har en API-nøkkel,
og en lukket del for redigering som kun er tilgjengelig for godkjente redaktører.
</p> </p>
<h3>Hva kan du forvente av denne tjenesten?</h3>
<p>Tjenesten er foreløpig i Beta. Selv om vi etterstreber å gjøre alle endringer inkrementelle vil det kunne forekomme strukturelle endringer i denne fasen.</p>
<p>Tjenesten er overvåket innenfor vanlig arbeidstid, og vil normalt være tilgjengelig hele døgnet. Dersom tjenesten skulle bli utilgjengelig på ettermiddag eller kveld
vil dette blir løst så fort som mulig neste arbeidsdag.</p>
<div id="link-container"> <div id="link-container">
<div class="link"><a target="_blank" href ="/api/swagger-ui.html"><img src="https://unpkg.com/swagger-ui-dist@3.23.5/favicon-32x32.png"> Utforsk REST-API-en</a></div> <div class="link"> <a href="https://ord.uib.no/">Brukerveiledning</a> </div>
<div class="link"> <a href="/api/guide.html">Brukerveiledning</a> </div> <div class="link"><a target="_blank" href ="/api/swagger-ui.html"><img src="https://unpkg.com/swagger-ui-dist@3.23.5/favicon-32x32.png" aria-hidden="true"> Explore the REST-API</a></div>
<div class="link"><a href="https://git.app.uib.no/spraksamlingane/api.ordbok.uib.no/-/blob/master/resources/swagger.json">Intern API</a> (velg den absolutte URLen fra menyen "servers")</div>
</div> </div>
</div> </div>
<div> </div> <div> </div>
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Swagger UI</title> <title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@3.33.0/swagger-ui.css" > <link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@4/swagger-ui.css" >
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.33.0/favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@4/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.33.0/favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@4/favicon-16x16.png" sizes="16x16" />
<style> <style>
html html
{ {
...@@ -32,13 +32,13 @@ ...@@ -32,13 +32,13 @@
<body> <body>
<div id="swagger-ui"></div> <div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@3.33.0/swagger-ui-bundle.js" charset="UTF-8"> </script> <script src="https://unpkg.com/swagger-ui-dist@4/swagger-ui-bundle.js" charset="UTF-8"> </script>
<script src="https://unpkg.com/swagger-ui-dist@3.33.0/swagger-ui-standalone-preset.js" charset="UTF-8"> </script> <script src="https://unpkg.com/swagger-ui-dist@4/swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
<script> <script>
window.onload = function() { window.onload = function() {
// Begin Swagger UI call region // Begin Swagger UI call region
const ui = SwaggerUIBundle({ const ui = SwaggerUIBundle({
url: "./swagger.json", url: "./swagger.yml",
dom_id: '#swagger-ui', dom_id: '#swagger-ui',
deepLinking: true, deepLinking: true,
presets: [ presets: [
......
{
"openapi": "3.0.1",
"info": {
"title": "Ordbok API",
"description": "This API is developed by the University of Bergen. Its purpose is to serve the new national dictionary website wich is under development. API keys are available upon request. No warranty.",
"version": "beta"
},
"servers": [
{
"url": "/api"
}
],
"paths": {
"/dict/{dict_id}": {
"get": {
"summary": "Dictionary metadata",
"description": "Returns metadata for a dictionary, including all entities used in article text",
"parameters": [
{
"name": "dict_id",
"in": "path",
"required": true,
"description": "Dictionary code, 'bob' for bokmål, 'nob' for nynorsk",
"schema": {
"type": "string"
},
"example": "bob"
}
],
"security": [
{
"api_key": []
}
],
"responses": {
"200": {
"description": "bla bla",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/dict/{dict_id}/article/{art_id}": {
"get": {
"summary": "Article lookup",
"description": "Returns an article with a specific numeric ID",
"parameters": [
{
"name": "dict_id",
"in": "path",
"required": true,
"description": "Dictionary code, 'bob' for bokmål, 'nob' for nynorsk",
"schema": {
"type": "string"
},
"example": "bob"
},
{
"name": "art_id",
"in": "path",
"required": true,
"description": "The numeric ID of an article",
"schema": {
"type": "integer"
},
"example": 15544
}
],
"security": [
{
"api_key": []
}
],
"responses": {
"200": {
"description": "bla bla",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/dict/{dict_id}/article/search": {
"get": {
"summary": "Search for a word",
"description": "Search for words as an article lemmas, or words occurring in certain article elements. For instance, old norse _fljúga_ will match the article for modern Norwegian verb _fly_ (meaning to fly)",
"parameters": [
{
"name": "dict_id",
"description": "Dictionary to search, 'bob' for bokmål, 'nob' for nynorsk, 'bob,nob' for both",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "q",
"description": "Query string",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"security": [
{
"api_key": []
}
],
"responses": {
"200": {
"description": "bla bla",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
},
"/dict/{dict_id}/article/suggest": {
"get": {
"summary": "Get autocomplete suggestions for a prefix",
"description": "Returns articles for words that begin with the prefix specified in query string 'q'",
"parameters": [
{
"name": "dict_id",
"description": "Dictionary to search, 'bob' for bokmål, 'nob' for nynorsk, 'bob,bob' for both",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "q",
"description": "Query string: prefix for autocomplete",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"security": [
{
"api_key": []
}
],
"responses": {
"200": {
"description": "bla bla",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
},
"securitySchemes": {
"api_key": {
"type": "apiKey",
"name": "x-api-key",
"in": "header"
}
}
}
}
openapi: 3.0.1
info:
title: Ordbok API
description: This API is developed by the University of Bergen. Its purpose is to serve the new national dictionary website wich is under development. No warranty.
version: 1.0.0
servers:
- url: https://ord.uib.no
paths:
/api/suggest:
get:
summary: Autocomplete
description: Suggests search keywords.
parameters:
- name: q
in: query
required: true
description: The search string
schema:
type: string
example: test
- name: dict
in: query
required: true
description: Dictionary code, 'bm' for bokmål, 'nn' for nynorsk, 'bm,nn' for both
schema:
type: string
example: bm,nn
- name: wc
in: query
description: "Filter by word class (part of speech tags: https://universaldependencies.org/u/pos/index.html). "
schema:
type: string
example: NOUN
- name: n
in: query
description: Number of results to return
schema:
type: integer
example: 4
- name: include
in: query
description: "Choose what types of suggestions you want to be included in the response. The parameter should be a concatenation of any of the following characters: e (exact lemma), f (full-text search), i (inflected forms), s (similar - fuzzy search)"
schema:
type: string
example: eis
- name: dform
in: query
description: "dfomr=int turns dictionary codes in the response into integers: 1 = bm, 2 = nn and 3 = bm,nn"
schema:
type: string
example: int
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/api/articles:
get:
summary: Article search
description: Search for articles. Returns lists of article IDs.
parameters:
- name: w
in: query
required: true
description: Word (Query string)
schema:
type: string
example: test
- name: dict
in: query
required: true
description: Dictionary code, 'bm' for bokmål, 'nn' for nynorsk, 'bm,nn' for both
schema:
type: string
example: bm,nn
- name: wc
in: query
description: "Filter by word class (part of speech tags: https://universaldependencies.org/u/pos/index.html). "
schema:
type: string
example: NOUN
- name: scope
in: query
description: "Define the scope of your query. The parameter should be a concatenation of any of the following characters: e (exact lemma), f (full-text search), i (inflected forms)"
schema:
type: string
example: eif
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
/{dict}/article/{article_id}.json:
get:
summary: Article lookup
description: Returns an article with a specific numeric ID
parameters:
- name: dict
in: path
required: true
description: Dictionary code, 'bm' for bokmål, 'nn' for nynorsk, 'bm,nn' for both
schema:
type: string
example: bm
- name: article_id
in: path
required: true
description: The numeric ID of an article
schema:
type: integer
example: 54131
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
...@@ -24,7 +24,7 @@ Parameters: ...@@ -24,7 +24,7 @@ Parameters:
AltDomainName: AltDomainName:
Type: String Type: String
Description: The domain name. Description: The domain name.
Default: 'beta.ordbok.uib.no' Default: 'ordbokene.no'
AllowedPattern: (?!-)[a-zA-Z0-9-.]{1,63}(?<!-) AllowedPattern: (?!-)[a-zA-Z0-9-.]{1,63}(?<!-)
ConstraintDescription: must be a valid DNS zone name ConstraintDescription: must be a valid DNS zone name
......
source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -3,34 +3,41 @@ ...@@ -3,34 +3,41 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve --port 8081",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"lint": "vue-cli-service lint" "lint": "vue-cli-service lint",
"i18n:report": "vue-cli-service i18n:report --src \"./src/**/*.?(js|vue)\" --locales \"./src/locales/**/*.json\""
}, },
"dependencies": { "dependencies": {
"axios": "^0.19.2", "axios": "^0.21.1",
"core-js": "^3.6.5", "core-js": "~3.6.5",
"debounce": "^1.2.1", "debounce": "^1.2.1",
"inflection-table": "https://git.app.uib.no/api/v4/projects/16442/jobs/artifacts/0.2.19/raw/module.tar.gz?job=publish", "inflection-table": "https://git.app.uib.no/api/v4/projects/16442/jobs/artifacts/1.1.6/raw/module.tar.gz?job=publish",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-awesome": "^3.5.4", "vue-i18n": "^8.26.7",
"vue-i18n-bridge": "^9.2.0-beta.10",
"vue-material-design-icons": "^4.11.0", "vue-material-design-icons": "^4.11.0",
"vue-plausible": "^1.1.4", "vue-meta": "^2.4.0",
"vue-plausible": "^1.3.1",
"vue-router": "^3.5.1", "vue-router": "^3.5.1",
"vuetify": "^2.4.8" "vuetify": "^2.5.8",
"vuex": "^3.6.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
"@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-optional-chaining": "^7.13.12",
"@intlify/vue-i18n-loader": "^3.2.0",
"@vue/cli-plugin-babel": "^4.5.12", "@vue/cli-plugin-babel": "^4.5.12",
"@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-eslint": "^3.1.1",
"@vue/cli-service": "~4.5.0", "@vue/cli-service": "^4.5.13",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"eslint": "^5.16.0", "eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0", "eslint-plugin-vue": "^5.0.0",
"mark.js": "^8.11.1",
"material-design-icons-iconfont": "^6.1.0", "material-design-icons-iconfont": "^6.1.0",
"sass": "^1.32.8", "sass": "^1.38.0",
"sass-loader": "^10.0.0", "sass-loader": "^10.0.0",
"vue-cli-plugin-i18n": "~2.3.1",
"vue-cli-plugin-vuetify": "^2.1.1", "vue-cli-plugin-vuetify": "^2.1.1",
"vue-template-compiler": "^2.6.12", "vue-template-compiler": "^2.6.12",
"vuetify-loader": "^1.7.2" "vuetify-loader": "^1.7.2"
...@@ -46,7 +53,8 @@ ...@@ -46,7 +53,8 @@
], ],
"rules": { "rules": {
"no-irregular-whitespace": "off", "no-irregular-whitespace": "off",
"no-unused-vars": "off" "no-unused-vars": "off",
"no-console": "off"
}, },
"parserOptions": { "parserOptions": {
"parser": "babel-eslint" "parser": "babel-eslint"
...@@ -62,4 +70,3 @@ ...@@ -62,4 +70,3 @@
"last 2 versions" "last 2 versions"
] ]
} }
public/favicon.ico

16.6 KiB | W: 64px | H: 64px

public/favicon.ico

21.6 KiB | W: 256px | H: 256px

public/favicon.ico
public/favicon.ico
public/favicon.ico
public/favicon.ico
  • 2-up
  • Swipe
  • Onion skin
public/favicon_old.ico

16.6 KiB

google-site-verification=i2hk16Pgpgw1Ld_XeejQrFttyZcKtEDwsdSa_oGs_Ms
\ No newline at end of file
...@@ -6,14 +6,35 @@ ...@@ -6,14 +6,35 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<link rel="apple-touch-icon" href="<%= BASE_URL %>touch-icon.png"> <link rel="apple-touch-icon" href="<%= BASE_URL %>touch-icon.png">
<meta name="robots" content="noindex" /> <meta property="og:title" content="Ordbøkene.no - Bokmålsordboka og Nynorskordboka" />
<title>Ordbøkene</title> <meta property="twitter:title" content="Ordbøkene.no - Bokmålsordboka og Nynorskordboka" />
<meta property="og:type" content="website" />
<meta property="og:url" content="ordbokene.no" />
<meta property="og:description" content="Bokmålsordboka og Nynorskordboka viser skrivemåte og bøying i tråd med norsk rettskriving. Språkrådet og Universitetet i Bergen står bak ordbøkene." />
<meta property="twitter:description" content="Bokmålsordboka og Nynorskordboka viser skrivemåte og bøying i tråd med norsk rettskriving. Språkrådet og Universitetet i Bergen står bak ordbøkene." />
<meta property="og:image" content="<%= BASE_URL %>logo.png" />
<meta property="og:image:width" content="256px" />
<meta property="og:image:height" content="256px" />
<meta property="twitter:image" content="<%= BASE_URL %>logo.png" />
<meta property="description" content="Bokmålsordboka og Nynorskordboka viser skrivemåte og bøying i tråd med norsk rettskriving. Språkrådet og Universitetet i Bergen står bak ordbøkene." />
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/fC1lPYxPY3rXxEndZJAzN3Srdy0.0ad9c62f.woff2" type="font/woff2" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/fC14PYxPY3rXxEndZJAzN3wQUjjCjl0.2712a85c.woff2" type="font/woff2" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/NotoSansParen.967bb7ff.woff" type="font/woff" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/o-0IIpQlx3QUlC5A4PNr5TRA.df7d440a.woff2" type="font/woff2" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/o-0NIpQlx3QUlC5A4PNjXhFVZNyBx2pqPA.887e23ab.woff2" type="font/woff2" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/o-0OIpQlx3QUlC5A4PNr4ARCQ_k.6816e3a8.woff2" type="font/woff2" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/MaterialIcons-Regular.51cf1d64.ttf" type="font/ttf" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/MaterialIcons-Regular.84a37de8.woff" type="font/woff" crossorigin="anonymous"/>
<link rel="preload" as="font" href="<%= BASE_URL %>fonts/MaterialIcons-Regular.703cf8f2.woff2" type="font/woff2" crossorigin="anonymous"/>
<title>Ordbøkene.no - Bokmålsordboka og Nynorskordboka</title>
</head> </head>
<body> <body>
<noscript> <noscript>
<strong>Slå på JavaScript for å få portalen Ordbøkene til å fungere.</strong> Bokmålsordboka og Nynorskordboka viser skrivemåte og bøying i tråd med norsk rettskriving. Språkrådet og Universitetet i Bergen står bak ordbøkene.
</noscript> </noscript>
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
</body> </body>
</html> </html>
public/logo.png

4.96 KiB