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 (2094)
Showing with 19887 additions and 5416 deletions
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
VUE_APP_ENDPOINT='odd_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_dev'
VUE_APP_VERSION_LABEL=DEVELOPMENT
VUE_APP_ENDPOINT='odd_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_dev'
VUE_APP_VERSION_LABEL=LOCAL
VUE_APP_RELEASE=test
NODE_ENV=production
VUE_APP_VERSION_LABEL=Prod
VUE_APP_ENDPOINT='oda_prod'
VUE_APP_FALLBACK_ENDPOINT='odd_prod'
......@@ -3,8 +3,8 @@ node_modules
/dist
# local env files
.env.local
.env.*.local
#.env.local
#.env.*.local
# Log files
npm-debug.log*
......@@ -19,3 +19,6 @@ yarn-error.log*
*.njsproj
*.sln
*.sw?
*.iml
......@@ -2,28 +2,109 @@ stages:
- build
- deploy
build:
image: node:latest
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:
image: node:16
tags:
- group_runner_spraaksamlingene_01
stage: build
rules:
- if: $CI_COMMIT_TAG != null
when: never
- if: $CI_COMMIT_REF_NAME == 'prod'
when: manual
- when: on_success
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 run build
- npm run build -- --mode dev_server
- 'echo -e "\nDisallow: /" >> dist/robots.txt'
artifacts:
expire_in: 1 week
paths:
- dist
deploy:
build-prod:
image: node:16
tags:
- group_runner_spraaksamlingene_01
stage: build
only:
- /^release_.*$/
script:
- echo "VUE_APP_RELEASE=$CI_COMMIT_REF_NAME" >> .env.production
- npm install --progress=false
- npm run build -- --mode production
artifacts:
expire_in: 1 week
paths:
- 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:
image: uibit/awscli:latest
tags:
- group_runner_spraaksamlingene_01
stage: deploy
rules:
- 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:
- rm -rf ~/.aws
- mv .aws ~/
- STACK_NAME=ordbok-frontend-beta
- CERT_ARN=arn:aws:acm:us-east-1:${AWS_ACCOUNT}:certificate/c7078026-d634-462b-86b4-1a6d33ac6d53
- export AWS_ACCESS_KEY_ID=$AWS_DEV_ACCESS_KEY_ID
- export AWS_SECRET_ACCESS_KEY=$AWS_DEV_SECRET_ACCESS_KEY
- STACK_NAME=ordbok-frontend-dev
- CERT_ARN=arn:aws:acm:us-east-1:${AWS_DEV_ACCOUNT}:certificate/15c0111e-b2f7-4a24-8c94-b7034a900d55
- aws cloudformation deploy --stack-name ${STACK_NAME}
--template-file "aws/beta.ordbok.uib.no_stack.yaml"
--parameter-overrides "CertificateArn=${CERT_ARN}"
"AltDomainName=dev.ordbok.uib.no"
"DomainName=beta.ordbok-dev.aws.uib.no"
"ZoneDomainName=ordbok-dev.aws.uib.no"
"PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_DEV_ACCOUNT}:function:rewrite_request:12"
"OrdbokCacheOriginDomain=8mwl23g34a.execute-api.eu-west-1.amazonaws.com"
"OrdbokCacheStage=DEV"
--no-fail-on-empty-changeset
--capabilities CAPABILITY_IAM
- aws s3 rm "s3://${STACK_NAME}.aws.uib.no" --recursive
......@@ -34,3 +115,35 @@ deploy:
--logical-resource-id Distribution
--query 'StackResourceDetail.PhysicalResourceId' | jq -r)
- aws cloudfront create-invalidation --distribution-id ${DISTRO_ID} --paths "/*"
deploy-prod:
image: uibit/awscli:latest
tags:
- group_runner_spraaksamlingene_01
stage: deploy
only:
- /^release_.*$/
script:
- cp src/sitemap/xml/* dist
- rm -rf ~/.aws
- mv .aws ~/
- export AWS_ACCESS_KEY_ID=$AWS_PROD_ACCESS_KEY_ID
- export AWS_SECRET_ACCESS_KEY=$AWS_PROD_SECRET_ACCESS_KEY
- STACK_NAME=ordbok-frontend-beta
- CERT_ARN=arn:aws:acm:us-east-1:${AWS_PROD_ACCOUNT}:certificate/c7078026-d634-462b-86b4-1a6d33ac6d53
- aws cloudformation deploy --stack-name ${STACK_NAME}
--template-file "aws/beta.ordbok.uib.no_stack.yaml"
--parameter-overrides "CertificateArn=${CERT_ARN}"
"PathRewriteLambdaARN=arn:aws:lambda:us-east-1:${AWS_PROD_ACCOUNT}:function:path_rewrite:18"
"OrdbokCacheOriginDomain=n5speug9cl.execute-api.eu-west-1.amazonaws.com"
"OrdbokCacheStage=PROD"
--no-fail-on-empty-changeset
--capabilities CAPABILITY_IAM
- aws s3 rm "s3://${STACK_NAME}.aws.uib.no" --recursive
- aws s3 sync dist/ "s3://${STACK_NAME}.aws.uib.no" --delete
- aws s3 sync api_static/ "s3://${STACK_NAME}.aws.uib.no"
- DISTRO_ID=$(aws cloudformation describe-stack-resource
--stack-name ${STACK_NAME}
--logical-resource-id Distribution
--query 'StackResourceDetail.PhysicalResourceId' | jq -r)
- aws cloudfront create-invalidation --distribution-id ${DISTRO_ID} --paths "/*"
Contributing
============
Changes are published using GitLab CI/CD. When making a change:
1. Test any changes to the frontend locally by runniing `npm run install` (if necessary) and `npm run serve`
2. Push changes to GitLab. When pipeline is finished, your changes will be visible on https://dev.ordbok.uib-no (check browser cache)
3. To publish your changes to beta, add a tag to your commit that starts with `release`, e.g. `release_2021-01-01`. When the pipeline finishes, changes up to that commit will be visible on https://beta.ordbok.uib.no
......@@ -27,3 +27,16 @@ npm run lint
### Customize configuration
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" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<h1>Beta - REST-API for ordbok.uib.no</h1>
<a href="swagger-ui.html">Utforsk APIen</a>
</body>
</html>
<html>
<head><meta charset="utf-8">
<style>
div {
flex-grow: 1;
}
div#flexbox {
display: flex;
flex-direction: row;
justify-content: center;
}
div#main {
max-width: 800px;
padding: 20px;
}
body {
font-family: sans-serif;
text-align: center;
}
a img {
vertical-align: middle;
}
.link {
padding: 10px;
}
p {
text-align: left;
}
</style>
</head>
<body>
<div id="flexbox">
<div> </div>
<div id="main">
<h1>Ordbok-API</h1>
<h3>Hva er dette?</h3>
<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.
</p>
<div id="link-container">
<div class="link"> <a href="https://ord.uib.no/">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>
</div>
<div> </div>
</div>
</body>
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/swagger-ui-dist@3.23.5/swagger-ui.css" >
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.23.5/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@3.23.5/favicon-16x16.png" sizes="16x16" />
<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@4/favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="https://unpkg.com/swagger-ui-dist@4/favicon-16x16.png" sizes="16x16" />
<style>
html
{
......@@ -33,13 +32,13 @@
<body>
<div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@3.23.5/swagger-ui-bundle.js"> </script>
<script src="https://unpkg.com/swagger-ui-dist@3.23.5/swagger-ui-standalone-preset.js"> </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@4/swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
<script>
window.onload = function() {
// Begin Swagger UI call region
const ui = SwaggerUIBundle({
url: "./swagger.json",
url: "./swagger.yml",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
......
{
"openapi": "3.0.1",
"info": {
"title": "ordbok-cache",
"version": "2020-02-17T12:44:25Z"
},
"servers": [],
"paths": {
"/article/{dict_id}/{art_id}": {
"get": {
"parameters": [
{
"name": "dict_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "art_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"security": [
{
"api_key": []
}
]
}
},
"/article/{dict_id}/search": {
"get": {
"parameters": [
{
"name": "dict_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "q",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"security": [
{
"api_key": []
}
]
}
},
"/article/{dict_id}/suggest": {
"get": {
"parameters": [
{
"name": "dict_id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "q",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"security": [
{
"api_key": []
}
]
}
}
},
"components": {
"schemas": {
"Empty": {
"title": "Empty Schema",
"type": "object"
}
},
"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
......@@ -3,9 +3,16 @@ AWSTemplateFormatVersion: '2010-09-09'
Description: >
Script to create S3 bucket, DNS (Route53) and Cloudfront distribution.
###############################################################################
##############################################################################
Parameters:
###############################################################################
##############################################################################
ZoneDomainName:
Type: String
Description: The domain name.
Default: 'ordbok.aws.uib.no'
AllowedPattern: (?!-)[a-zA-Z0-9-.]{1,63}(?<!-)
ConstraintDescription: must be a valid DNS zone name
DomainName:
Type: String
......@@ -17,22 +24,35 @@ Parameters:
AltDomainName:
Type: String
Description: The domain name.
Default: 'beta.ordbok.uib.no'
Default: 'ordbokene.no'
AllowedPattern: (?!-)[a-zA-Z0-9-.]{1,63}(?<!-)
ConstraintDescription: must be a valid DNS zone name
PriceClass:
Type: String
Description: The CloudFront distribution price class
Default: 'PriceClass_100'
Default: 'PriceClass_All'
AllowedValues:
- 'PriceClass_100'
#- 'PriceClass_200'
#- 'PriceClass_All'
- 'PriceClass_200'
- 'PriceClass_All'
CertificateArn:
Type: String
PathRewriteLambdaARN:
Type: String
Description: ARN to lambda function in us-east-1 used to rewrite paths
OrdbokCacheOriginDomain:
Type: String
Description: Domain name for ordbok cache
OrdbokCacheStage:
Type: String
AllowedValues:
- DEV
- PROD
###############################################################################
Resources:
......@@ -40,7 +60,7 @@ Resources:
DNS:
Type: "AWS::Route53::RecordSet"
Properties:
HostedZoneName: !Sub "${DomainName}."
HostedZoneName: !Sub "${ZoneDomainName}."
Name: !Ref DomainName
Type: A
AliasTarget:
......@@ -73,39 +93,26 @@ Resources:
Principal:
CanonicalUser: !GetAtt CloudFrontOriginIdentity.S3CanonicalUserId
ITAIpSet:
Type: "AWS::WAF::IPSet"
Properties:
IPSetDescriptors:
- Type: "IPV4"
Value: "129.177.0.0/16"
- Type: "IPV4"
Value: "82.134.66.114/32"
Name: "allowed IPs"
ITARule:
Type: "AWS::WAF::Rule"
APICachePolicy:
Type: "AWS::CloudFront::CachePolicy"
Properties:
MetricName: "ITARule"
Name: "ITARule"
Predicates:
- Type: "IPMatch"
Negated: false
DataId: !Ref ITAIpSet
ACL:
Type: "AWS::WAF::WebACL"
Properties:
DefaultAction:
Type: "BLOCK"
Name: "intern ITA"
MetricName: "WebACL"
Rules:
- Action:
Type: "ALLOW"
Priority: 1
RuleId: !Ref ITARule
CachePolicyConfig:
DefaultTTL: 10800
MaxTTL: 28800
MinTTL: 60
Name: "APICachePolicy"
ParametersInCacheKeyAndForwardedToOrigin:
CookiesConfig:
CookieBehavior: all
EnableAcceptEncodingBrotli: false
EnableAcceptEncodingGzip: false
QueryStringsConfig:
QueryStringBehavior: all
HeadersConfig:
HeaderBehavior: whitelist
Headers:
- "x-api-key"
- cachebuster
Distribution:
Type: "AWS::CloudFront::Distribution"
Properties:
......@@ -120,8 +127,8 @@ Resources:
S3OriginConfig:
OriginAccessIdentity: !Sub "origin-access-identity/cloudfront/${CloudFrontOriginIdentity}"
- Id: OrdbokCache
DomainName: "ycyevfqwnk.execute-api.eu-west-1.amazonaws.com"
OriginPath: "/DEV"
DomainName: !Ref OrdbokCacheOriginDomain
OriginPath: !Sub "/${OrdbokCacheStage}"
CustomOriginConfig:
OriginProtocolPolicy: https-only
OriginKeepaliveTimeout: 60
......@@ -137,30 +144,24 @@ Resources:
LambdaFunctionAssociations:
- EventType: viewer-request
IncludeBody: false
LambdaFunctionARN: "arn:aws:lambda:us-east-1:156160966877:function:path_rewrite:10"
LambdaFunctionARN: !Ref PathRewriteLambdaARN
ForwardedValues:
QueryString: 'false'
Cookies:
Forward: none
ViewerProtocolPolicy: redirect-to-https
CacheBehaviors:
- PathPattern: "/api/article/*"
- PathPattern: "/api/dict/*"
AllowedMethods:
- HEAD
- DELETE
- POST
- GET
- HEAD
- OPTIONS
- PUT
- PATCH
MaxTTL: 0
DefaultTTL: 0
MinTTL: 0
CachePolicyId: !Ref APICachePolicy
TargetOriginId: OrdbokCache
LambdaFunctionAssociations:
- EventType: viewer-request
IncludeBody: false
LambdaFunctionARN: "arn:aws:lambda:us-east-1:156160966877:function:path_rewrite:10"
LambdaFunctionARN: !Ref PathRewriteLambdaARN
ForwardedValues:
QueryString: true
Cookies:
......@@ -170,7 +171,6 @@ Resources:
AcmCertificateArn: !Ref CertificateArn
MinimumProtocolVersion: TLSv1.1_2016
SslSupportMethod: sni-only
WebACLId: !Ref ACL
Tags:
- Key: Application
Value: !Ref DomainName
......
module.exports = {
presets: [
'@vue/app'
]
'@vue/cli-plugin-babel/preset'
],
plugins: ["@babel/plugin-proposal-nullish-coalescing-operator", "@babel/plugin-proposal-optional-chaining"]
}
This diff is collapsed.
......@@ -3,26 +3,44 @@
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"serve": "vue-cli-service serve --port 8081",
"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": {
"@trevoreyre/autocomplete-vue": "^2.2.0",
"axios": "^0.19.2",
"core-js": "^2.6.11",
"vue": "^2.6.11",
"vue-awesome": "^3.5.4",
"vue-router": "^3.4.1"
"axios": "^0.21.1",
"core-js": "~3.6.5",
"debounce": "^1.2.1",
"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-i18n": "^8.26.7",
"vue-i18n-bridge": "^9.2.0-beta.10",
"vue-material-design-icons": "^4.11.0",
"vue-meta": "^2.4.0",
"vue-plausible": "^1.3.1",
"vue-router": "^3.5.1",
"vuetify": "^2.5.8",
"vuex": "^3.6.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.12.1",
"@vue/cli-plugin-eslint": "^3.12.1",
"@vue/cli-service": "^3.12.1",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
"@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-eslint": "^3.1.1",
"@vue/cli-service": "^4.5.13",
"babel-eslint": "^10.1.0",
"eslint": "^5.16.0",
"eslint-plugin-vue": "^5.0.0",
"vue-template-compiler": "^2.6.11"
"mark.js": "^8.11.1",
"material-design-icons-iconfont": "^6.1.0",
"sass": "^1.38.0",
"sass-loader": "^10.0.0",
"vue-cli-plugin-i18n": "~2.3.1",
"vue-cli-plugin-vuetify": "^2.1.1",
"vue-template-compiler": "^2.6.12",
"vuetify-loader": "^1.7.2"
},
"eslintConfig": {
"root": true,
......@@ -33,7 +51,11 @@
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {},
"rules": {
"no-irregular-whitespace": "off",
"no-unused-vars": "off",
"no-console": "off"
},
"parserOptions": {
"parser": "babel-eslint"
}
......
public/favicon.ico

1.12 KiB | W: 16px | H: 16px

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

public/flaks.ico

1.12 KiB

google-site-verification=i2hk16Pgpgw1Ld_XeejQrFttyZcKtEDwsdSa_oGs_Ms
\ No newline at end of file