Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f8d18396d |
+1
-2
@@ -27,8 +27,7 @@ module.exports = {
|
|||||||
ecmaVersion: 2019,
|
ecmaVersion: 2019,
|
||||||
tsconfigRootDir: __dirname,
|
tsconfigRootDir: __dirname,
|
||||||
project: ['./tsconfig.json'],
|
project: ['./tsconfig.json'],
|
||||||
extraFileExtensions: ['.svelte'],
|
extraFileExtensions: ['.svelte']
|
||||||
allowAutomaticSingleRunInference: true
|
|
||||||
},
|
},
|
||||||
env: {
|
env: {
|
||||||
browser: true,
|
browser: true,
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v2
|
||||||
id: yarn-and-build-cache
|
id: yarn-and-build-cache
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
@@ -27,17 +27,17 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
${{ runner.os }}-node_modules-build-
|
${{ runner.os }}-node_modules-build-
|
||||||
|
|
||||||
- name: Build & Lint
|
- name: Lint
|
||||||
run: |
|
run: |
|
||||||
yarn install
|
yarn install
|
||||||
yarn build
|
yarn run lint
|
||||||
yarn lint
|
|
||||||
|
|
||||||
# Install NPM dependencies, cache them correctly
|
# Install NPM dependencies, cache them correctly
|
||||||
# and run all Cypress tests
|
# and run all Cypress tests
|
||||||
- name: Cypress run
|
- name: Cypress run
|
||||||
uses: cypress-io/github-action@v2
|
uses: cypress-io/github-action@v2
|
||||||
with:
|
with:
|
||||||
|
build: yarn build
|
||||||
start: yarn preview
|
start: yarn preview
|
||||||
wait-on: 'http://localhost:3000'
|
wait-on: 'http://localhost:3000'
|
||||||
record: true
|
record: true
|
||||||
|
|||||||
@@ -11,23 +11,37 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- uses: actions/setup-node@v2
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
with:
|
||||||
node-version: '16'
|
node-version: '16'
|
||||||
cache: yarn
|
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Get yarn cache directory path
|
||||||
|
id: yarn-cache-dir-path
|
||||||
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||||
|
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
id: yarn-cache
|
||||||
|
with:
|
||||||
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||||
|
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-yarn-
|
||||||
|
|
||||||
- name: Build & Deploy
|
- name: Build & Deploy
|
||||||
run: |
|
run: |
|
||||||
npm i -g yarn
|
npm i -g yarn
|
||||||
export DEPLOY=true
|
export DEPLOY=true
|
||||||
|
[ "$GITHUB_EVENT_NAME" == "pull_request" ] && export BETA=true && rm -rf docs/beta/
|
||||||
[ "$GITHUB_EVENT_NAME" != "pull_request" ] && rm -rf docs/_app/
|
[ "$GITHUB_EVENT_NAME" != "pull_request" ] && rm -rf docs/_app/
|
||||||
yarn install
|
yarn install
|
||||||
|
yarn run lint
|
||||||
version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2)
|
version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2)
|
||||||
yarn build
|
yarn build
|
||||||
yarn run lint
|
cd bin
|
||||||
|
./fix-path
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
@@ -38,7 +38,7 @@ jobs:
|
|||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Build image
|
- name: Build image
|
||||||
run: docker build . --file Dockerfile --tag $IMAGE_NAME
|
run: docker build . --file Dockerfile --tag $IMAGE_NAME
|
||||||
|
|||||||
@@ -13,8 +13,5 @@ jobs:
|
|||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
exempt-issue-labels: 'retained'
|
exempt-issue-labels: 'retained'
|
||||||
exempt-pr-labels: 'retained'
|
exempt-pr-labels: 'retained'
|
||||||
stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days'
|
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days'
|
||||||
stale-pr-message: 'This pr is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 14 days'
|
stale-pr-message: 'This pr is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days'
|
||||||
days-before-stale: 90
|
|
||||||
days-before-close: 14
|
|
||||||
days-before-pr-close: -1
|
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- run: npx browserslist@latest --update-db
|
- run: npx browserslist@latest --update-db
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: EndBug/add-and-commit@v9
|
uses: EndBug/add-and-commit@v8
|
||||||
with:
|
with:
|
||||||
author_name: ${{ github.actor }}
|
author_name: ${{ github.actor }}
|
||||||
author_email: ${{ github.actor }}@users.noreply.github.com
|
author_email: ${{ github.actor }}@users.noreply.github.com
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
name: Update Monaco-editor
|
name: Update Monaco-editor
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
pull_request:
|
||||||
|
types: [opened]
|
||||||
branches:
|
branches:
|
||||||
- 'dependabot/npm_and_yarn/develop/monaco-editor-**'
|
- 'dependabot/npm_and_yarn/develop/monaco-editor-**'
|
||||||
|
|
||||||
@@ -9,10 +10,10 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v2
|
||||||
- run: ./bin/update-monaco
|
- run: ./bin/update-monaco
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: EndBug/add-and-commit@v9
|
uses: EndBug/add-and-commit@v8
|
||||||
with:
|
with:
|
||||||
author_name: ${{ github.actor }}
|
author_name: ${{ github.actor }}
|
||||||
author_email: ${{ github.actor }}@users.noreply.github.com
|
author_email: ${{ github.actor }}@users.noreply.github.com
|
||||||
|
|||||||
+1
-2
@@ -6,12 +6,11 @@
|
|||||||
# Stop : press ctrl + c
|
# Stop : press ctrl + c
|
||||||
# or
|
# or
|
||||||
# docker stop mermaid-live-editor
|
# docker stop mermaid-live-editor
|
||||||
FROM node:17.8.0 as mermaid-live-editor-builder
|
FROM node:17.4.0 as mermaid-live-editor-builder
|
||||||
COPY --chown=node:node . /home
|
COPY --chown=node:node . /home
|
||||||
WORKDIR /home
|
WORKDIR /home
|
||||||
RUN yarn install
|
RUN yarn install
|
||||||
RUN yarn build
|
RUN yarn build
|
||||||
|
|
||||||
FROM nginx:alpine as mermaid-live-editor-runner
|
FROM nginx:alpine as mermaid-live-editor-runner
|
||||||
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
|
|
||||||
COPY --from=mermaid-live-editor-builder --chown=nginx:nginx /home/docs /usr/share/nginx/html
|
COPY --from=mermaid-live-editor-builder --chown=nginx:nginx /home/docs /usr/share/nginx/html
|
||||||
|
|||||||
@@ -30,14 +30,4 @@ describe('Auto sync tests', () => {
|
|||||||
cy.get('#view').should('not.have.class', 'outOfSync');
|
cy.get('#view').should('not.have.class', 'outOfSync');
|
||||||
cy.getLocalStorage('codeStore').snapshot();
|
cy.getLocalStorage('codeStore').snapshot();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('supports commenting code out/in', () => {
|
|
||||||
const cmd = Cypress.platform === 'darwin' ? 'meta' : 'ctrl';
|
|
||||||
|
|
||||||
cy.get('#editor').type(`{uparrow}{${cmd}}/`);
|
|
||||||
cy.get('#view').contains('Car').should('not.exist');
|
|
||||||
|
|
||||||
cy.get('#editor').type(`{uparrow}{${cmd}}/`);
|
|
||||||
cy.get('#view').contains('Car').should('exist');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
describe('Editor docs tests', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
cy.on('uncaught:exception', () => {
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
cy.clearLocalStorage();
|
|
||||||
cy.visit('/edit');
|
|
||||||
cy.contains('Sample Diagrams').click();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Test default loading', () => {
|
|
||||||
cy.get(`[data-cy=docs][href^="https://mermaid-js.github.io/mermaid"]`).should('exist');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Test to see if the correct URL loads when changing from one diagram to other', () => {
|
|
||||||
cy.contains('Flow Chart').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/flowchart"]`).should('exist');
|
|
||||||
|
|
||||||
cy.contains('Config').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/flowchart?id=configuration"]`).should('exist');
|
|
||||||
|
|
||||||
cy.contains('Sequence Diagram').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/sequenceDiagram?id=configuration"]`).should('exist');
|
|
||||||
|
|
||||||
cy.contains('Code').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/sequenceDiagram"]`).should('exist');
|
|
||||||
});
|
|
||||||
|
|
||||||
it("Test to check URLs for a case where config URL doesn't exist", () => {
|
|
||||||
cy.contains('State Diagram').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/stateDiagram"]`).should('exist');
|
|
||||||
|
|
||||||
cy.contains('Config').click();
|
|
||||||
cy.get(`[data-cy=docs][href$="/#/stateDiagram"]`).should('exist');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -46,9 +46,7 @@ describe('Save History', () => {
|
|||||||
cy.get('#historyList').contains('No items in History');
|
cy.get('#historyList').contains('No items in History');
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Fix #639
|
it('should auto save history', () => {
|
||||||
// eslint-disable-next-line mocha/no-skipped-tests
|
|
||||||
xit('should auto save history', () => {
|
|
||||||
cy.get('#editor').type(' C --> HistoryTest');
|
cy.get('#editor').type(' C --> HistoryTest');
|
||||||
cy.tick(70000);
|
cy.tick(70000);
|
||||||
cy.contains('Timeline').click();
|
cy.contains('Timeline').click();
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ describe('Site Loads', () => {
|
|||||||
);
|
);
|
||||||
cy.url().should(
|
cy.url().should(
|
||||||
'include',
|
'include',
|
||||||
'/edit#pako:eNpVkM1qw0AMhF9F6NRC_AI-FBo7zSXQQHLz-iC8cnZJ9oe1TAm2373rmkKrk9B8MwyasAuascRbomjgWisPed6byiQ7iKOhhaJ4m48s4ILn5wz7l2OAwYQYrb-9bvx-haCaTivGIMb6-7JJ1Y__0_MMdXOiKCG2f5XrV5jh0NizyfH_FZM4uz6ansqeio4SVJRa3KHj5MjqXHtaDQrFsGOFZV419zQ-RKHyS0bHqEn4oK2EhDnmMfAOaZRwefoOS0kj_0K1pfwFtx2XbzAdW4g'
|
'/edit#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ'
|
||||||
);
|
);
|
||||||
cy.contains('History').click();
|
cy.contains('History').click();
|
||||||
cy.getLocalStorage('codeStore').snapshot();
|
cy.getLocalStorage('codeStore').snapshot();
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ module.exports = {
|
|||||||
"1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"files\",\"config\":{\"codeURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd\",\"configURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json\"}}}"
|
"1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"files\",\"config\":{\"codeURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd\",\"configURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json\"}}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"__version": "9.5.1",
|
"__version": "9.2.0",
|
||||||
"Auto sync tests": {
|
"Auto sync tests": {
|
||||||
"should dim diagram when code is edited": {
|
"should dim diagram when code is edited": {
|
||||||
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}"
|
"1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}"
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name mermaid;
|
|
||||||
location / {
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
# Fallback to index.html for other paths
|
|
||||||
try_files $uri /index.html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+31
-31
@@ -5,8 +5,8 @@
|
|||||||
"dev": "svelte-kit dev --host 0.0.0.0",
|
"dev": "svelte-kit dev --host 0.0.0.0",
|
||||||
"build": "svelte-kit build",
|
"build": "svelte-kit build",
|
||||||
"preview": "svelte-kit preview",
|
"preview": "svelte-kit preview",
|
||||||
"lint": "prettier --check --plugin-search-dir=. .;eslint --ignore-path .gitignore .",
|
"lint": "prettier --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
|
||||||
"lint:fix": "prettier --write --plugin-search-dir=. .;eslint --fix --ignore-path .gitignore .",
|
"lint:fix": "prettier --write --plugin-search-dir=. . && eslint --fix --ignore-path .gitignore .",
|
||||||
"format": "prettier --write --plugin-search-dir=. .",
|
"format": "prettier --write --plugin-search-dir=. .",
|
||||||
"pre-commit": "lint-staged",
|
"pre-commit": "lint-staged",
|
||||||
"postinstall": "husky install",
|
"postinstall": "husky install",
|
||||||
@@ -15,50 +15,50 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cypress/snapshot": "^2.1.7",
|
"@cypress/snapshot": "^2.1.7",
|
||||||
"@sveltejs/adapter-static": "1.0.0-next.29",
|
"@sveltejs/adapter-static": "1.0.0-next.26",
|
||||||
"@sveltejs/kit": "1.0.0-next.310",
|
"@sveltejs/kit": "1.0.0-next.236",
|
||||||
"@types/mermaid": "^8.2.9",
|
"@types/mermaid": "^8.2.7",
|
||||||
"@types/pako": "^1.0.3",
|
"@types/pako": "^1.0.3",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
||||||
"@typescript-eslint/parser": "^4.33.0",
|
"@typescript-eslint/parser": "^4.33.0",
|
||||||
"autoprefixer": "^10.4.4",
|
"autoprefixer": "^10.4.2",
|
||||||
"chai": "^4.3.6",
|
"chai": "^4.3.4",
|
||||||
"cssnano": "^5.1.7",
|
"cssnano": "^5.0.15",
|
||||||
"cypress": "9.5.3",
|
"cypress": "9.3.1",
|
||||||
"cypress-localstorage-commands": "^1.7.0",
|
"cypress-localstorage-commands": "^1.6.1",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^8.5.0",
|
"eslint-config-prettier": "^8.1.0",
|
||||||
"eslint-plugin-cypress": "^2.12.1",
|
"eslint-plugin-cypress": "^2.12.1",
|
||||||
"eslint-plugin-es": "^4.1.0",
|
"eslint-plugin-es": "^4.1.0",
|
||||||
"eslint-plugin-mocha": "^10.0.3",
|
"eslint-plugin-mocha": "^10.0.3",
|
||||||
"eslint-plugin-postcss-modules": "^2.0.0",
|
"eslint-plugin-postcss-modules": "^2.0.0",
|
||||||
"eslint-plugin-svelte3": "^3.4.1",
|
"eslint-plugin-svelte3": "^3.4.0",
|
||||||
"eslint-plugin-tailwindcss": "^3.5.0",
|
"eslint-plugin-tailwindcss": "^3.3.0",
|
||||||
"husky": "^7.0.4",
|
"husky": "^7.0.4",
|
||||||
"lint-staged": "^12.3.7",
|
"lint-staged": "^12.2.2",
|
||||||
"mocha": "^9.2.2",
|
"mocha": "^9.1.4",
|
||||||
"node-html-parser": "^5.3.3",
|
"node-html-parser": "^5.2.0",
|
||||||
"postcss": "^8.4.12",
|
"postcss": "^8.4.5",
|
||||||
"postcss-load-config": "^3.1.4",
|
"postcss-load-config": "^3.1.1",
|
||||||
"prettier": "~2.6.2",
|
"prettier": "~2.5.1",
|
||||||
"prettier-plugin-svelte": "^2.7.0",
|
"prettier-plugin-svelte": "^2.6.0",
|
||||||
"svelte": "^3.47.0",
|
"svelte": "^3.46.2",
|
||||||
"svelte-preprocess": "^4.10.5",
|
"svelte-preprocess": "^4.10.2",
|
||||||
"tailwindcss": "^3.0.21",
|
"tailwindcss": "^3.0.13",
|
||||||
"tslib": "^2.3.1",
|
"tslib": "^2.3.1",
|
||||||
"typescript": "^4.6.3"
|
"typescript": "^4.5.5"
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@analytics/google-analytics": "^0.5.3",
|
"@analytics/google-analytics": "^0.5.3",
|
||||||
"@macfja/svelte-persistent-store": "^1.3.0",
|
"@macfja/svelte-persistent-store": "^1.2.0",
|
||||||
"analytics": "^0.8.1",
|
"analytics": "^0.7.21",
|
||||||
"daisyui": "2.13.6",
|
"daisyui": "1.24.3",
|
||||||
"js-base64": "^3.7.2",
|
"js-base64": "^3.7.2",
|
||||||
"mermaid": "9.0.0",
|
"mermaid": "8.14.0-rc1",
|
||||||
"moment": "^2.29.2",
|
"moment": "^2.29.1",
|
||||||
"monaco-editor": "^0.33.0",
|
"monaco-editor": "^0.31.1",
|
||||||
"monaco-mermaid": "^1.0.3",
|
"monaco-mermaid": "^1.0.2",
|
||||||
"pako": "2.0.4",
|
"pako": "2.0.4",
|
||||||
"random-word-slugs": "^0.1.6"
|
"random-word-slugs": "^0.1.6"
|
||||||
},
|
},
|
||||||
|
|||||||
+7
-7
@@ -11,31 +11,31 @@
|
|||||||
<meta
|
<meta
|
||||||
name="description"
|
name="description"
|
||||||
content="Simplify documentation and avoid heavy tools. Open source Visio Alternative. Commonly used for explaining your code! Mermaid is a simple markdown-like script language for generating charts from text via javascript." />
|
content="Simplify documentation and avoid heavy tools. Open source Visio Alternative. Commonly used for explaining your code! Mermaid is a simple markdown-like script language for generating charts from text via javascript." />
|
||||||
<link rel="icon" type="image/png" href="%svelte.assets%/favicon.png" />
|
<link rel="icon" type="image/png" href="favicon.png" />
|
||||||
<link rel="manifest" href="%svelte.assets%/manifest.json" />
|
<link rel="manifest" href="manifest.json" />
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" />
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" />
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs/editor/editor.main.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.31.1/min/vs/editor/editor.main.min.css"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
referrerpolicy="no-referrer" />
|
referrerpolicy="no-referrer" />
|
||||||
<script>
|
<script>
|
||||||
var require = {
|
var require = {
|
||||||
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs' }
|
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.31.1/min/vs' }
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<script
|
<script
|
||||||
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs/loader.min.js"
|
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.31.1/min/vs/loader.min.js"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
referrerpolicy="no-referrer"></script>
|
referrerpolicy="no-referrer"></script>
|
||||||
<script
|
<script
|
||||||
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs/editor/editor.main.nls.min.js"
|
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.31.1/min/vs/editor/editor.main.nls.min.js"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
referrerpolicy="no-referrer"></script>
|
referrerpolicy="no-referrer"></script>
|
||||||
<script
|
<script
|
||||||
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.33.0/min/vs/editor/editor.main.js"
|
src="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.31.1/min/vs/editor/editor.main.js"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
referrerpolicy="no-referrer"></script>
|
referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<ul class="tabs" transition:fade>
|
<ul class="tabs" transition:fade>
|
||||||
{#each tabs as tab}
|
{#each tabs as tab}
|
||||||
<div
|
<div
|
||||||
class="tab tab-lifted {activeTabID === tab.id ? 'tab-active' : 'text-primary-content'}"
|
class="tab tab-lifted text-primary-content {activeTabID === tab.id ? 'tab-active' : ''}"
|
||||||
on:click|stopPropagation={() => toggleTabs(tab)}>
|
on:click|stopPropagation={() => toggleTabs(tab)}>
|
||||||
<i class="mr-1 {tab.icon}" />
|
<i class="mr-1 {tab.icon}" />
|
||||||
{tab.title}
|
{tab.title}
|
||||||
|
|||||||
@@ -79,19 +79,7 @@
|
|||||||
section Go home
|
section Go home
|
||||||
Go downstairs: 5: Me
|
Go downstairs: 5: Me
|
||||||
Sit down: 3: Me
|
Sit down: 3: Me
|
||||||
`,
|
`
|
||||||
'Git Graph': ` gitGraph
|
|
||||||
commit
|
|
||||||
commit
|
|
||||||
branch develop
|
|
||||||
checkout develop
|
|
||||||
commit
|
|
||||||
commit
|
|
||||||
checkout main
|
|
||||||
merge develop
|
|
||||||
commit
|
|
||||||
commit
|
|
||||||
`
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const loadSampleDiagram = (diagramType: string): void => {
|
const loadSampleDiagram = (diagramType: string): void => {
|
||||||
|
|||||||
Vendored
-7
@@ -57,11 +57,4 @@ export interface HistoryEntry {
|
|||||||
url?: string;
|
url?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DocConfig {
|
|
||||||
[key: string]: {
|
|
||||||
code: string;
|
|
||||||
config?: string;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
type Loader = (url: string) => Promise<State>;
|
type Loader = (url: string) => Promise<State>;
|
||||||
|
|||||||
+18
-73
@@ -12,62 +12,17 @@
|
|||||||
import { onMount } from 'svelte';
|
import { onMount } from 'svelte';
|
||||||
import mermaid from 'mermaid';
|
import mermaid from 'mermaid';
|
||||||
import type monaco from 'monaco-editor';
|
import type monaco from 'monaco-editor';
|
||||||
import type { EditorUpdateEvent, State, Tab, DocConfig } from '$lib/types';
|
import type { EditorUpdateEvent, State, Tab } from '$lib/types';
|
||||||
import { base } from '$app/paths';
|
import { base } from '$app/paths';
|
||||||
|
|
||||||
serializedState; // Weird fix for error > serializedState is not defined. Treeshaking?
|
serializedState; // Weird fix for error > serializedState is not defined. Treeshaking?
|
||||||
|
let selectedMode = 'code';
|
||||||
type Modes = 'code' | 'config';
|
const languageMap = {
|
||||||
type Languages = 'mermaid' | 'json';
|
|
||||||
|
|
||||||
let selectedMode: Modes = 'code';
|
|
||||||
const languageMap: { [key in Modes]: Languages } = {
|
|
||||||
code: 'mermaid',
|
code: 'mermaid',
|
||||||
config: 'json'
|
config: 'json'
|
||||||
};
|
};
|
||||||
const docURLBase = 'https://mermaid-js.github.io/mermaid';
|
|
||||||
const docMap: DocConfig = {
|
|
||||||
graph: {
|
|
||||||
code: '/#/flowchart',
|
|
||||||
config: '/#/flowchart?id=configuration'
|
|
||||||
},
|
|
||||||
flowchart: {
|
|
||||||
code: '/#/flowchart',
|
|
||||||
config: '/#/flowchart?id=configuration'
|
|
||||||
},
|
|
||||||
sequenceDiagram: {
|
|
||||||
code: '/#/sequenceDiagram',
|
|
||||||
config: '/#/sequenceDiagram?id=configuration'
|
|
||||||
},
|
|
||||||
classDiagram: {
|
|
||||||
code: '/#/classDiagram',
|
|
||||||
config: '/#/classDiagram?id=configuration'
|
|
||||||
},
|
|
||||||
'stateDiagram-v2': {
|
|
||||||
code: '/#/stateDiagram'
|
|
||||||
},
|
|
||||||
gantt: {
|
|
||||||
code: '/#/gantt',
|
|
||||||
config: '/#/gantt?id=configuration'
|
|
||||||
},
|
|
||||||
pie: {
|
|
||||||
code: '/#/pie'
|
|
||||||
},
|
|
||||||
erDiagram: {
|
|
||||||
code: '/#/entityRelationshipDiagram',
|
|
||||||
config: '/#/entityRelationshipDiagram?id=styling'
|
|
||||||
},
|
|
||||||
journey: {
|
|
||||||
code: '/#/user-journey'
|
|
||||||
},
|
|
||||||
gitGraph: {
|
|
||||||
code: '/#/gitgraph',
|
|
||||||
config: '/#/gitgraph?id=gitgraph-specific-configuration-options'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let text = '';
|
let text = '';
|
||||||
let docURL = docURLBase;
|
let language: 'mermaid' | 'json' = 'mermaid';
|
||||||
let language: Languages = 'mermaid';
|
|
||||||
let errorMarkers: monaco.editor.IMarkerData[] = [];
|
let errorMarkers: monaco.editor.IMarkerData[] = [];
|
||||||
$: language = languageMap[selectedMode];
|
$: language = languageMap[selectedMode];
|
||||||
$: {
|
$: {
|
||||||
@@ -82,16 +37,10 @@
|
|||||||
if (state.updateEditor) {
|
if (state.updateEditor) {
|
||||||
text = selectedMode === 'code' ? state.code : state.mermaid;
|
text = selectedMode === 'code' ? state.code : state.mermaid;
|
||||||
}
|
}
|
||||||
const codeTypeMatch = /([\S]+)[\s\n]/.exec(state.code);
|
|
||||||
if (codeTypeMatch && codeTypeMatch.length > 1) {
|
|
||||||
const docKey = codeTypeMatch[1];
|
|
||||||
const docConfig = docMap[docKey] ?? { code: '' };
|
|
||||||
docURL = docURLBase + (docConfig[selectedMode] ?? docConfig.code ?? '');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
const tabSelectHandler = (message: CustomEvent<Tab>) => {
|
const tabSelectHandler = (message: CustomEvent<Tab>) => {
|
||||||
selectedMode = message.detail.id === 'code' ? 'code' : 'config';
|
|
||||||
$codeStore.updateEditor = true;
|
$codeStore.updateEditor = true;
|
||||||
|
selectedMode = message.detail.id;
|
||||||
};
|
};
|
||||||
const tabs: Tab[] = [
|
const tabs: Tab[] = [
|
||||||
{
|
{
|
||||||
@@ -179,28 +128,24 @@
|
|||||||
<Card on:select={tabSelectHandler} {tabs} isCloseable={false} title="Mermaid">
|
<Card on:select={tabSelectHandler} {tabs} isCloseable={false} title="Mermaid">
|
||||||
<div slot="actions">
|
<div slot="actions">
|
||||||
<div class="flex flex-row items-center">
|
<div class="flex flex-row items-center">
|
||||||
<div class="form-control flex-row items-center">
|
|
||||||
<label class="cursor-pointer label" for="autoSync">
|
|
||||||
<span> Auto sync</span>
|
|
||||||
<input
|
|
||||||
type="checkbox"
|
|
||||||
class="toggle {$codeStore.autoSync ? 'btn-secondary' : 'toggle-primary'} ml-1"
|
|
||||||
id="autoSync"
|
|
||||||
bind:checked={$codeStore.autoSync} />
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{#if !$codeStore.autoSync}
|
{#if !$codeStore.autoSync}
|
||||||
<button
|
<button
|
||||||
class="btn btn-secondary btn-xs mr-1"
|
class="btn btn-secondary btn-xs"
|
||||||
title="Sync Diagram"
|
title="Sync Diagram"
|
||||||
data-cy="sync"
|
data-cy="sync"
|
||||||
on:click={syncDiagram}><i class="fas fa-sync" /></button>
|
on:click={syncDiagram}><i class="fas fa-sync" /></button>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<button class="btn btn-secondary btn-xs" title="View documentation">
|
<div class="form-control">
|
||||||
<a target="_blank" href={docURL} data-cy="docs"><i class="fas fa-book mr-1" />Docs</a>
|
<label class="cursor-pointer label" for="autoSync">
|
||||||
</button>
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
class="toggle toggle-primary mr-1"
|
||||||
|
id="autoSync"
|
||||||
|
bind:checked={$codeStore.autoSync} />
|
||||||
|
<span> Auto sync</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -218,9 +163,9 @@
|
|||||||
<Card title="Diagram" isCloseable={false}>
|
<Card title="Diagram" isCloseable={false}>
|
||||||
<button
|
<button
|
||||||
slot="actions"
|
slot="actions"
|
||||||
class="btn btn-secondary btn-xs"
|
class="btn btn-primary btn-xs shadow-lg"
|
||||||
title="View diagram in new page"
|
title="View diagram in new page"
|
||||||
on:click|stopPropagation={() => viewDiagram()}><i class="far fa-eye mr-1" />View</button>
|
on:click|stopPropagation={() => viewDiagram()}><i class="far fa-eye mr-2" /> View</button>
|
||||||
|
|
||||||
<div class="flex-1 overflow-auto">
|
<div class="flex-1 overflow-auto">
|
||||||
<View />
|
<View />
|
||||||
|
|||||||
+4
-2
@@ -12,13 +12,15 @@ const config = {
|
|||||||
],
|
],
|
||||||
kit: {
|
kit: {
|
||||||
adapter: adapter({
|
adapter: adapter({
|
||||||
pages: `docs`
|
pages: `docs${process.env['BETA'] ? '/beta' : ''}`
|
||||||
}),
|
}),
|
||||||
paths: process.env['DEPLOY']
|
paths: process.env['DEPLOY']
|
||||||
? {
|
? {
|
||||||
base: `/mermaid-live-editor`
|
base: `/mermaid-live-editor${process.env['BETA'] ? '/beta' : ''}`
|
||||||
}
|
}
|
||||||
: {},
|
: {},
|
||||||
|
// hydrate the <div id="svelte"> element in src/app.html
|
||||||
|
target: '#svelte',
|
||||||
trailingSlash: 'ignore',
|
trailingSlash: 'ignore',
|
||||||
vite: {
|
vite: {
|
||||||
envPrefix: 'MERMAID_',
|
envPrefix: 'MERMAID_',
|
||||||
|
|||||||
+31
-3
@@ -1,11 +1,39 @@
|
|||||||
{
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"module": "es2020",
|
||||||
|
"lib": ["es2020", "ESNext", "DOM.Iterable", "DOM"],
|
||||||
|
"target": "es2019",
|
||||||
|
/**
|
||||||
|
svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript
|
||||||
|
to enforce using \`import type\` instead of \`import\` for Types.
|
||||||
|
*/
|
||||||
|
"importsNotUsedAsValues": "error",
|
||||||
|
"isolatedModules": true,
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
/**
|
||||||
|
To have warnings/errors of the Svelte compiler at the correct position,
|
||||||
|
enable source maps by default.
|
||||||
|
*/
|
||||||
|
"sourceMap": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"baseUrl": ".",
|
||||||
|
"allowJs": true,
|
||||||
|
"checkJs": true,
|
||||||
|
"paths": {
|
||||||
|
"$lib/*": ["src/lib/*"]
|
||||||
|
}
|
||||||
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"src/**/*.d.ts",
|
"src/**/*.d.ts",
|
||||||
|
"src/**/*.js",
|
||||||
"src/**/*.ts",
|
"src/**/*.ts",
|
||||||
"src/**/*.svelte",
|
"src/**/*.svelte",
|
||||||
"cypress/**/*.ts",
|
"cypress/**/*.ts",
|
||||||
"cypress/**/*.js",
|
"cypress/**/*.js",
|
||||||
"static/**/*.js"
|
"static/**/*.js",
|
||||||
],
|
"src/pako.mts"
|
||||||
"extends": "./.svelte-kit/tsconfig.json"
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user