diff --git a/app/javascript/article-form/articleForm.jsx b/app/javascript/article-form/articleForm.jsx
index dff7b6191..56e522029 100644
--- a/app/javascript/article-form/articleForm.jsx
+++ b/app/javascript/article-form/articleForm.jsx
@@ -200,17 +200,22 @@ export class ArticleForm extends Component {
fetchMarkdownLint = async () => {
if (!window.markdownlint) {
+ const pathDataElement = document.getElementById('markdown-lint-js-path');
+ if (!pathDataElement) {
+ return;
+ }
+
+ // Retrieve the correct fingerprinted URL for the scripts
+ const { markdownItJsPath, markdownLintJsPath } = pathDataElement.dataset;
+
const markdownItScript = document.createElement('script');
- markdownItScript.setAttribute('src', '/assets/markdown-it.min.js');
+ markdownItScript.setAttribute('src', markdownItJsPath);
document.body.appendChild(markdownItScript);
// The markdownlint script needs the first script to have finished loading first
markdownItScript.addEventListener('load', () => {
const markdownLintScript = document.createElement('script');
- markdownLintScript.setAttribute(
- 'src',
- '/assets/markdownlint-browser.min.js',
- );
+ markdownLintScript.setAttribute('src', markdownLintJsPath);
document.body.appendChild(markdownLintScript);
markdownLintScript.addEventListener('load', this.lintMarkdown);
diff --git a/app/views/articles/edit.html.erb b/app/views/articles/edit.html.erb
index 84df38d00..75b4c751b 100644
--- a/app/views/articles/edit.html.erb
+++ b/app/views/articles/edit.html.erb
@@ -31,3 +31,4 @@
<%= render "articles/v2_form", article: @article, organizations: @organizations, version: @version %>
<%= javascript_packs_with_chunks_tag "clipboardCopy", "articleForm", defer: true %>
+
" data-markdown-lint-js-path="<%= asset_path("markdownlint-browser.min.js") %>">
diff --git a/app/views/articles/new.html.erb b/app/views/articles/new.html.erb
index 73a54ce4e..6c1cc38f2 100644
--- a/app/views/articles/new.html.erb
+++ b/app/views/articles/new.html.erb
@@ -7,6 +7,7 @@
<%= render "shared/webcomponents_loader_script" %>
<%= render "articles/v2_form", article: @article, organizations: @organizations, version: @version %>
<%= javascript_packs_with_chunks_tag "clipboardCopy", "articleForm", defer: true %>
+
" data-markdown-lint-js-path="<%= asset_path("markdownlint-browser.min.js") %>">
<% else %>
<% @new_article_not_logged_in = true %>
<%= render "devise/registrations/registration_form" %>
diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb
index 068a20f42..5760688fe 100644
--- a/config/initializers/assets.rb
+++ b/config/initializers/assets.rb
@@ -14,4 +14,5 @@ Rails.application.config.assets.paths << Rails.root.join("app/assets/xml")
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in the app/assets
# folder are already added.
+Rails.application.config.assets.precompile += %w[markdown-it.min.js markdownlint-browser.min.js]
# Rails.application.config.assets.precompile += %w( admin.js admin.css )
diff --git a/jest.config.js b/jest.config.js
index 864d0b8a3..d05a9afc9 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -28,7 +28,7 @@ module.exports = {
statements: 42,
branches: 38,
functions: 41,
- lines: 43,
+ lines: 42,
},
},
moduleNameMapper: {
diff --git a/app/assets/javascripts/markdown-it.min.js b/vendor/assets/javascripts/markdown-it.min.js
similarity index 100%
rename from app/assets/javascripts/markdown-it.min.js
rename to vendor/assets/javascripts/markdown-it.min.js
diff --git a/app/assets/javascripts/markdownlint-browser.min.js b/vendor/assets/javascripts/markdownlint-browser.min.js
similarity index 100%
rename from app/assets/javascripts/markdownlint-browser.min.js
rename to vendor/assets/javascripts/markdownlint-browser.min.js