Comments (5)
Thought I'd try and get some Regex on the go for this, jut for reference (it might be wrong / not efficient).
Find plane image tag, returns $1
for text:
^\n!image\[(.*)\]$
This gets the URL too, returns $1
for text and $2
for URL (check variable $2
to see if URL is set):
^\n!image\[(.*)\]\((.*)\)$
These should work, but not sure as I haven't tested them.
from ghost.
The regex we have so far is:
/\n+!image\[([\d\w\s]*)\]/gi
Which has two problems:
- it is too greedy with \n and consumes them all breaking things like titles etc
- It doesn't yet accept the parentheses at the end
The regex lives in core/admin/assets/lib/showdown/extensions/ghostdown.js
from ghost.
Another issue I noticed, (although I feel like I might be missing something) is that the regex doesn't support the shorter image syntax:
![alt](url)
So I'm thinking of something perhaps more like this:
/\n?!(?:image)?\[([^\n\]]*)\](?:\(([^\n\)]*)\))?/gi
I'm submitting a pull request based on this. :)
It looks a bit gross, but the capture-groups are the same, meaning the function arguments can stay readable, without having to include junk parameters just to pad the other arguments out properly.
from ghost.
@ErisDS Doesn't this issue still depend on the actual upload working?
from ghost.
Nope :) this issue was just for the regex which you did.
There are a series of issues for getting uploads working.
- Image Upload: Reusable tool for uploads #280 - a basic uploader tool for Ghost (nearing completion)
- Image Upload: generate IDs in showdown to match with CodeMirror #295 - making it possible to share info about images between showdown/ghost down and CodeMIrror, the hardest part, potentially impossible without modifying code mirror - (no on seems interested)
- Image Upload: Upload in editor panel #40 - wire up the tool/plugin on the editor page
- Image Upload: Save in post - haunted markdown #41 - save the image src back into the markdown
@cobbspur has been working on some of this, but there is still a lot to do
from ghost.
Related Issues (20)
- {{tiers}} helper has regression in 5.80 - "free" tier shown in list.
- Integrations - FirstPromoter always showing as "active" HOT 2
- Admin API - Create Paid Members support HOT 1
- Node Version Requirement Not Declared Fine Enough HOT 4
- Wrong DNS records shown HOT 1
- Error updating to Ghost 5.80 from 5.23, blog down, please help HOT 1
- Comments broken in latest release HOT 5
- Internal tags not all displayed in admin panel
- Korean Romanization is Wrong HOT 3
- Ghost cannot connect to Mysql AWS RDS instance with latest CA from AWS HOT 2
- Handlebars special partial "@partial-block" gets reported as unknown global HOT 1
- Vulnerability Report: Regular Expression Denial of Service (ReDoS) in moment.js HOT 1
- Plain text view HOT 3
- Installation on Windows Fails with "A SystemError occurred." (nodejs version mismatch) HOT 1
- Newlines not correctly handled in product card titles
- Support Bluesky oEmbed auto-discovery HOT 4
- Editor tooltip for text styling is not visible when using android mobile
- Outdated version of string-width is causing the Docker image entrypoint loading to fail. HOT 2
- Site version in API not showing patch HOT 2
- glibc-vulnerability cve-2024-2961 [BUG] HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ghost.