Compare commits
5 Commits
9db54cdbca
...
e76025eb90
| Author | SHA1 | Date | |
|---|---|---|---|
| e76025eb90 | |||
| 9ffcf266da | |||
| 1c8cd1c80c | |||
| 260e107f84 | |||
| e8f400aa76 |
6
Makefile
6
Makefile
@@ -22,6 +22,7 @@ all: $(OUTPUT_FILES)
|
|||||||
@rsync -a node_modules/mermaid/dist/mermaid.min.js build/static/lib/
|
@rsync -a node_modules/mermaid/dist/mermaid.min.js build/static/lib/
|
||||||
@rsync -a node_modules/jquery/dist/jquery.min.js build/static/lib/
|
@rsync -a node_modules/jquery/dist/jquery.min.js build/static/lib/
|
||||||
@rsync -a node_modules/dropzone/dist/min/dropzone* build/static/lib/
|
@rsync -a node_modules/dropzone/dist/min/dropzone* build/static/lib/
|
||||||
|
@rsync -a node_modules/github-markdown-css/*css build/static/lib/
|
||||||
|
|
||||||
$(GO_OUT): $(GO_IN)
|
$(GO_OUT): $(GO_IN)
|
||||||
cd src/go && go build ${LDFLAGS} -o ../../build/notes
|
cd src/go && go build ${LDFLAGS} -o ../../build/notes
|
||||||
@@ -63,11 +64,14 @@ docker-run:
|
|||||||
.PHONY: install-deps
|
.PHONY: install-deps
|
||||||
install-deps:
|
install-deps:
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
|
.PHONY: install-test-deps
|
||||||
|
install-test-deps:
|
||||||
pip install -r src/python/requirements.txt
|
pip install -r src/python/requirements.txt
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: all
|
run: all
|
||||||
cd build && ./notes $(DEFAULT_ARGS)
|
cd build && ./notes $(DEFAULT_ARGS) --data ../data
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test: all
|
test: all
|
||||||
|
|||||||
1
lib/github-markdown.css
vendored
1
lib/github-markdown.css
vendored
File diff suppressed because one or more lines are too long
14
package-lock.json
generated
14
package-lock.json
generated
@@ -7,6 +7,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/roboto": "^4.2.0",
|
"@fontsource/roboto": "^4.2.0",
|
||||||
"dropzone": "^5.7.6",
|
"dropzone": "^5.7.6",
|
||||||
|
"github-markdown-css": "^4.0.0",
|
||||||
"jquery": "^3.5.0",
|
"jquery": "^3.5.0",
|
||||||
"mathjax": "^3.1.2",
|
"mathjax": "^3.1.2",
|
||||||
"mermaid": "^8.9.0",
|
"mermaid": "^8.9.0",
|
||||||
@@ -395,6 +396,14 @@
|
|||||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/github-markdown-css": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-mH0bcIKv4XAN0mQVokfTdKo2OD5K8WJE9+lbMdM32/q0Ie5tXgVN/2o+zvToRMxSTUuiTRcLg5hzkFfOyBYreg==",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/graphlib": {
|
"node_modules/graphlib": {
|
||||||
"version": "2.1.8",
|
"version": "2.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
|
||||||
@@ -985,6 +994,11 @@
|
|||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"github-markdown-css": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-mH0bcIKv4XAN0mQVokfTdKo2OD5K8WJE9+lbMdM32/q0Ie5tXgVN/2o+zvToRMxSTUuiTRcLg5hzkFfOyBYreg=="
|
||||||
|
},
|
||||||
"graphlib": {
|
"graphlib": {
|
||||||
"version": "2.1.8",
|
"version": "2.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/roboto": "^4.2.0",
|
"@fontsource/roboto": "^4.2.0",
|
||||||
"dropzone": "^5.7.6",
|
"dropzone": "^5.7.6",
|
||||||
|
"github-markdown-css": "^4.0.0",
|
||||||
"jquery": "^3.5.0",
|
"jquery": "^3.5.0",
|
||||||
"mathjax": "^3.1.2",
|
"mathjax": "^3.1.2",
|
||||||
"mermaid": "^8.9.0",
|
"mermaid": "^8.9.0",
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ func init() {
|
|||||||
bmPolicy.AllowElements("style")
|
bmPolicy.AllowElements("style")
|
||||||
bmPolicy.AllowAttrs("checked", "disabled", "type").OnElements("input")
|
bmPolicy.AllowAttrs("checked", "disabled", "type").OnElements("input")
|
||||||
bmPolicy.AllowAttrs("width", "height", "align").OnElements("img")
|
bmPolicy.AllowAttrs("width", "height", "align").OnElements("img")
|
||||||
bmPolicy.AllowAttrs("style", "class", "align").OnElements("span", "p", "div", "a")
|
bmPolicy.AllowAttrs("style", "class", "align").OnElements("span", "p", "div", "a", "table", "tr", "td", "th")
|
||||||
md = goldmark.New(
|
md = goldmark.New(
|
||||||
goldmark.WithExtensions(extension.GFM),
|
goldmark.WithExtensions(extension.GFM),
|
||||||
goldmark.WithExtensions(mathjax.MathJax),
|
goldmark.WithExtensions(mathjax.MathJax),
|
||||||
|
|||||||
@@ -112,6 +112,10 @@ function retagContent() {
|
|||||||
window.MathJax.typeset();
|
window.MathJax.typeset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reapply syntax highlight
|
||||||
|
hljs.initHighlighting.called = false;
|
||||||
|
hljs.initHighlighting();
|
||||||
|
|
||||||
// Re-render Mermaid diagrams
|
// Re-render Mermaid diagrams
|
||||||
mermaid.init();
|
mermaid.init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ def browser():
|
|||||||
options.add_argument("--headless")
|
options.add_argument("--headless")
|
||||||
options.add_argument("window-size=1920,1080")
|
options.add_argument("window-size=1920,1080")
|
||||||
browser = webdriver.Chrome(options=options)
|
browser = webdriver.Chrome(options=options)
|
||||||
|
browser.get(INDEX_URL)
|
||||||
|
assert_no_javascript_errors(browser)
|
||||||
yield browser
|
yield browser
|
||||||
browser.quit()
|
browser.quit()
|
||||||
|
|
||||||
@@ -32,15 +34,7 @@ def assert_no_javascript_errors(browser):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_index_should_redirect_to_edit(browser):
|
|
||||||
browser.get(INDEX_URL)
|
|
||||||
assert "/edit" in browser.current_url
|
|
||||||
|
|
||||||
|
|
||||||
def test_should_edit(browser):
|
def test_should_edit(browser):
|
||||||
browser.get(INDEX_URL)
|
|
||||||
assert_no_javascript_errors(browser)
|
|
||||||
|
|
||||||
# Type a new note
|
# Type a new note
|
||||||
user_input = browser.find_element_by_id("userInput")
|
user_input = browser.find_element_by_id("userInput")
|
||||||
user_input.clear()
|
user_input.clear()
|
||||||
@@ -81,9 +75,6 @@ def test_should_edit(browser):
|
|||||||
|
|
||||||
|
|
||||||
def test_upload(browser):
|
def test_upload(browser):
|
||||||
browser.get(INDEX_URL)
|
|
||||||
assert_no_javascript_errors(browser)
|
|
||||||
|
|
||||||
# Upload a file
|
# Upload a file
|
||||||
upload_file(browser, "readme.txt", "src/python/assets/readme.txt")
|
upload_file(browser, "readme.txt", "src/python/assets/readme.txt")
|
||||||
sleep(1)
|
sleep(1)
|
||||||
@@ -91,3 +82,37 @@ def test_upload(browser):
|
|||||||
|
|
||||||
# Should create a link
|
# Should create a link
|
||||||
browser.find_element_by_link_text("readme.txt")
|
browser.find_element_by_link_text("readme.txt")
|
||||||
|
|
||||||
|
|
||||||
|
def test_code_highlight(browser):
|
||||||
|
# Type some source code
|
||||||
|
user_input = browser.find_element_by_id("userInput")
|
||||||
|
user_input.clear()
|
||||||
|
user_input.send_keys(
|
||||||
|
"```python\n"
|
||||||
|
"def hello_world():\n"
|
||||||
|
" print('Hello')\n"
|
||||||
|
"```\n"
|
||||||
|
)
|
||||||
|
sleep(1)
|
||||||
|
assert_no_javascript_errors(browser)
|
||||||
|
|
||||||
|
# Should create highlighted elements
|
||||||
|
browser.find_element_by_css_selector(".hljs-title")
|
||||||
|
|
||||||
|
|
||||||
|
def test_mermaid(browser):
|
||||||
|
# Draw a diagram
|
||||||
|
user_input = browser.find_element_by_id("userInput")
|
||||||
|
user_input.clear()
|
||||||
|
user_input.send_keys(
|
||||||
|
'<div class="mermaid">\n'
|
||||||
|
'graph TD\n'
|
||||||
|
' hello --> world\n'
|
||||||
|
'</div>\n'
|
||||||
|
)
|
||||||
|
sleep(1)
|
||||||
|
assert_no_javascript_errors(browser)
|
||||||
|
|
||||||
|
# Should create highlighted elements
|
||||||
|
browser.find_element_by_tag_name("svg")
|
||||||
|
|||||||
Reference in New Issue
Block a user